<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Blog2Works</title>
		<link>http://www.web2works.co.uk/blog2works/</link>
		<atom:link href="http://www.web2works.co.uk/blog2works/" rel="self" type="application/rss+xml" />
		<description></description>

		
		<item>
			<title>WAMP Setup Guide - Window 7/Vista </title>
			<link>http://www.web2works.co.uk/blog2works/wamp-setup-guide-window-7-vista/</link>
			<description>&lt;p&gt;This is a quick reference guide on setting up WAMP for development on Windows 7 with:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Memcached&lt;/li&gt;
&lt;li&gt;Send Mail&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;1. Download/Install WAMP.&lt;/h2&gt;
&lt;p&gt;Latest is not always the best and well supported. I had a issue with &lt;a href=&quot;http://www.ioncube.com/loaders.php&quot;&gt;ionCube&lt;/a&gt; only suport 32 bit versions of PHP&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sourceforge.net/projects/wampserver/files/WampServer%202/WampServer%202.1/WampServer2.1d-x32.exe/download&quot;&gt;http://sourceforge.net/projects/wampserver/files/WampServer%202/WampServer%202.1/WampServer2.1d-x32.exe/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apache: 2.2.17&lt;br/&gt;MySQL: 5.5.8&lt;br/&gt;PHP: 5.3.4&lt;/p&gt;
&lt;p&gt;Set auto start: Right click My Computer -&amp;gt; Manager -&amp;gt; Services and Applications -&amp;gt; Services:&lt;/p&gt;
&lt;p&gt;Enabled services: &quot;wampmysqld/wampapache&quot;, right clicking select properties and set to Auto.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.web2works.co.uk/assets/Uploads/_resampled/resizedimage727489-computer-management-services.jpg&quot; width=&quot;600&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Also WAMP can sometimes cause conflict with Skype when they try to start together.&lt;/p&gt;
&lt;h2&gt;2. Memcached&lt;/h2&gt;
&lt;p&gt;Download: &lt;a href=&quot;http://code.jellycan.com/memcached&quot;&gt;http://code.jellycan.com/memcached&lt;/a&gt; into:&lt;em&gt; &lt;/em&gt;c:\wamp\memcached&lt;/p&gt;
&lt;p&gt;Edit properties of memechaced.exe set &quot;Run as administrator&quot;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.web2works.co.uk/assets/Uploads/memcached-properties.jpg&quot; width=&quot;377&quot; height=&quot;515&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Run &lt;/em&gt;-&amp;gt; cmd&lt;br/&gt;- c:\wamp\memcached\memcached.exe -d install&lt;br/&gt;- c:\wamp\memcached\memcached.exe -d start&lt;br/&gt;- c:\wamp\memcached\memcached.exe -d runservice -m 512 (increase memory limit)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.web2works.co.uk/assets/Uploads/_resampled/resizedimage600141-cmd-memcached.jpg&quot; width=&quot;600&quot; height=&quot;141&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;
&lt;p&gt;Download: &lt;a href=&quot;http://code.google.com/p/thinkam/downloads/detail?name=php_memcache-cvs-20090703-5.3-VC6-x86.zip&quot;&gt;http://code.google.com/p/thinkam/downloads/detail?name=php_memcache-cvs-20090703-5.3-VC6-x86.zip&lt;/a&gt;&lt;br/&gt;Into: c:\wamp\bin\php\php5.3.4\ext\php_memcache.dll&lt;/p&gt;
&lt;p&gt;php.ini add: extension=php_memcache.dll (or do this all later)&lt;/p&gt;
&lt;h2&gt;3. Send Mail&lt;/h2&gt;
&lt;p&gt;Download: &lt;a href=&quot;http://glob.com.au/sendmail&quot;&gt;http://glob.com.au/sendmail&lt;/a&gt; into:&lt;em&gt; &lt;/em&gt;c:\wamp\sendmail&lt;br/&gt;Update setting with your email  address or make up a testing gMail account. Ensure you enable the  settings in gmail to allow external&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;smtp_server=mail.domain.co.uk&lt;br/&gt;auth_username=mail@domain.co.uk&lt;br/&gt;auth_password=password&lt;br/&gt;;pop3_server=&lt;br/&gt;;pop3_username=&lt;br/&gt;;pop3_password=&lt;br/&gt;hostname= yourdomain.co.uk&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;3. Set Apache Settings&lt;/h2&gt;
&lt;p&gt;From the WAMP icon on the desktop, left click: Apache -&amp;gt; Apache Modules&lt;/p&gt;
&lt;p&gt;Enabled the follows, or ensure they are selected:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;autoindex_module&lt;/li&gt;
&lt;li&gt;expires_module&lt;/li&gt;
&lt;li&gt;filter_module&lt;/li&gt;
&lt;li&gt;headers_module&lt;/li&gt;
&lt;li&gt;rewrite_module&lt;/li&gt;
&lt;li&gt;vhost_alias_module (c:\wamp\bin\apache\Apache2.2.17\conf\extras)&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;4. Set PHP.ini Settings&lt;/h2&gt;
&lt;p&gt;From the WAMP icon on the desktop: PHP -&amp;gt; php.ini (Or manually open from C:\wamp\bin\&lt;span style=&quot;text-decoration: underline;&quot;&gt;apache\Apache2.2.17&lt;/span&gt;\bin\php.ini)&lt;/p&gt;
&lt;p&gt;Find/Update the following options. Manily so there is no limit whne importing into phpmyadmin and you can run large utility scripts via the browser.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;post_max_size = 256M&lt;br/&gt;max_execution_time = 5000&lt;br/&gt;max_input_time = 5000&lt;br/&gt;memory_limit = 1000M &lt;br/&gt;upload_max_filesize = 750M&lt;br/&gt;include_path = &quot;.;c:\wamp\www\php\includes&quot;&lt;br/&gt;sendmail_path = c:\wamp\sendmail\sendmail.exe –t&lt;/p&gt;
&lt;p&gt;extension=php_curl.dll&lt;br/&gt;extension=php_memcache.dll&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Create the php include directory: c:\wamp\www\php\includes&lt;/p&gt;
&lt;h3&gt;MySQL Settings:&lt;/h3&gt;
&lt;p&gt;To fix this error: &lt;em&gt;ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;From the WAMP icon open: MySQL -&amp;gt; my.ini&lt;/p&gt;
&lt;p&gt;Added/replace:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;log_bin_trust_function_creators = 1&lt;br/&gt;lower_case_table_names=2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Fix Apache Auto Index Icons:&lt;/h3&gt;
&lt;p&gt;Edit: c:\wamp\bin\apache\Apache2.2.17\conf\extra\httpd-autoindex.conf&lt;br/&gt;Find: &quot;/httpd-2.2-x64/icons&quot; or some reference to a locations/folders and replace with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Alias /icons/ &quot;c:/wamp/bin/apache/Apache2.2.17/icons/&quot; &lt;br/&gt;    ** MAKE SURE YOU HAVE FORWARD SLASH AT END&lt;br/&gt;    &lt;br/&gt;&amp;lt;Directory &quot;c:/wamp/bin/apache/Apache2.2.17/icons&quot;&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Example vHost:&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;VirtualHost *&amp;gt;&lt;br/&gt;    ServerName www.example.local&lt;br/&gt;    ServerAlias example.local *.example.local&lt;br/&gt;    DocumentRoot &quot;c:\wamp\www\&quot;&lt;br/&gt;    &amp;lt;Directory &quot;c:\wamp\www\&quot;&amp;gt;&lt;br/&gt;        Options Indexes FollowSymLinks Includes&lt;br/&gt;        AllowOverride All&lt;br/&gt;        Order allow,deny&lt;br/&gt;        Allow from all&lt;br/&gt;    &amp;lt;/Directory&amp;gt;&lt;br/&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;</description>
			<pubDate>Sat, 10 Nov 2012 14:01:35 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/wamp-setup-guide-window-7-vista/</guid>
		</item>
		
		<item>
			<title>Windows 7 restore address book for Mozilla Thunderbird from previous profile</title>
			<link>http://www.web2works.co.uk/blog2works/windows-7-restore-address-book-for-mozilla-thunderbird-from-previous-profile/</link>
			<description>&lt;p&gt;On windows 7:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;CLOSE THUNDERBIRD. &lt;/li&gt;
&lt;li&gt;Open the address book from the backup eg: R:backup123\Users\*\AppData\Roaming\Thunderbird\Profiles&lt;/li&gt;
&lt;li&gt;Select the profile eg: 6sdgakb6.default&lt;/li&gt;
&lt;li&gt;Find file: &lt;strong&gt;abook.mab&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Select &lt;em&gt;Start&lt;/em&gt; menu. &lt;/li&gt;
&lt;li&gt;Type: %appdata%&lt;/li&gt;
&lt;li&gt;Open: Thunderbird\Profiles&lt;/li&gt;
&lt;li&gt;Select the profile eg: 6sdgadf6.default&lt;/li&gt;
&lt;li&gt;Replace file: &lt;strong&gt;abook.mab&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Open Thunderbird&lt;/p&gt;
&lt;p&gt;Reference: &lt;a href=&quot;http://kb.mozillazine.org/Moving_address_books_between_profiles&quot; target=&quot;_blank&quot;&gt;http://kb.mozillazine.org/Moving_address_books_between_profiles&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Fri, 09 Nov 2012 13:59:59 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/windows-7-restore-address-book-for-mozilla-thunderbird-from-previous-profile/</guid>
		</item>
		
		<item>
			<title>Different types of Domain Names</title>
			<link>http://www.web2works.co.uk/blog2works/different-types-of-domain-names/</link>
			<description>&lt;h2&gt;Different types of Domain Names&lt;/h2&gt;
&lt;p&gt;There are three main types of domain names:&lt;/p&gt;
&lt;h3&gt;Nominet Domains (.uk):&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;.co.uk&lt;/li&gt;
&lt;li&gt;.org.uk&lt;/li&gt;
&lt;li&gt;.me.uk&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;Top Level Domains (TLD’s):&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt; .com&lt;/li&gt;
&lt;li&gt;.net&lt;/li&gt;
&lt;li&gt;.org&lt;/li&gt;
&lt;li&gt;.biz&lt;/li&gt;
&lt;li&gt;.info&lt;/li&gt;
&lt;li&gt;.mobi&lt;/li&gt;
&lt;li&gt;.name&lt;/li&gt;
&lt;li&gt;.eu&lt;/li&gt;
&lt;li&gt;.tv&lt;/li&gt;
&lt;li&gt;.cc&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;CentralNic Domains:&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;ae.org&lt;/li&gt;
&lt;li&gt;.cn.com&lt;/li&gt;
&lt;li&gt;.de.com&lt;/li&gt;
&lt;li&gt;.eu.com&lt;/li&gt;
&lt;li&gt;.gb.com &lt;/li&gt;
&lt;li&gt;.gb.net&lt;/li&gt;
&lt;li&gt;.kr.com&lt;/li&gt;
&lt;li&gt;.qc.com&lt;/li&gt;
&lt;li&gt;.sa.com&lt;/li&gt;
&lt;li&gt;.us.com&lt;/li&gt;
&lt;li&gt;.se.net&lt;/li&gt;
&lt;li&gt;.se.com &lt;/li&gt;
&lt;li&gt;.uy.com&lt;/li&gt;
&lt;li&gt;.br.com&lt;/li&gt;
&lt;li&gt;.no.com&lt;/li&gt;
&lt;li&gt;.hu.com&lt;/li&gt;
&lt;li&gt;.ru.com&lt;/li&gt;
&lt;li&gt;.jpn.com&lt;/li&gt;
&lt;li&gt;.uk.net&lt;/li&gt;
&lt;li&gt;.uk.com&lt;/li&gt;
&lt;li&gt;.za.com&lt;/li&gt;
&lt;/ul&gt;</description>
			<pubDate>Fri, 04 May 2012 14:07:36 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/different-types-of-domain-names/</guid>
		</item>
		
		<item>
			<title>WAMP Auto Index - Fix missing icons</title>
			<link>http://www.web2works.co.uk/blog2works/wamp-auto-index-fix-missing-icons/</link>
			<description>&lt;p&gt;When enabling the auto index on WAMP you will need to make a small cahnge to the apache: &lt;em&gt;httpd-autoindex.conf &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This can be found (apending on your version) here: c:\wamp\bin\apache\Apache2.2.17\conf\extra\httpd-autoindex.conf&lt;/p&gt;
&lt;p&gt;Find:&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;Alias /icons/ &quot;/apache/icons/&quot;&lt;br/&gt;&lt;br/&gt; &amp;lt;Directory &quot;/apache/icons/&quot;&amp;gt;&lt;/pre&gt;
&lt;p&gt;Replace: &quot;/apache/icons/&quot; with the absolute path to your Apache Icons directory. E.g: &lt;strong&gt;C:/wamp/bin/apache/Apache2.2.21/icons/&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Restart APACHE.&lt;/p&gt;
&lt;p&gt;DONE&lt;/p&gt;
&lt;p&gt;You need to make sure that you use FORWARD SLASH not BACK SLASH if you are copy/paste from windows.&lt;/p&gt;</description>
			<pubDate>Wed, 04 Apr 2012 16:45:44 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/wamp-auto-index-fix-missing-icons/</guid>
		</item>
		
		<item>
			<title>Useful VI bash commands</title>
			<link>http://www.web2works.co.uk/blog2works/useful-vi-bash-commands/</link>
			<description>&lt;p&gt;First of all you need to know how to close vi: ctrl-c : q!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;These are some of the basic and most common used command to get you started.&lt;/p&gt;
&lt;pre&gt;:q -&amp;gt; quit
:w -&amp;gt; save
:q! -&amp;gt; quit and don't save
:x -&amp;gt; save and quit
:[number] -&amp;gt; go to line number
G -&amp;gt; go to end of file
dd -&amp;gt; delete line
p -&amp;gt; &quot;put&quot; line
yy -&amp;gt; &quot;copy&quot; line
:s/[searchfor] -&amp;gt; search&lt;br/&gt;u -&amp;gt; undo last type word&lt;/pre&gt;
&lt;p&gt;Further examples can be found at:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://vim.wikia.com/wiki/Best_Vim_Tips&quot; target=&quot;_blank&quot;&gt;http://vim.wikia.com/wiki/Best_Vim_Tips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.digilife.be/quickreferences/QRC/Vi%20Reference%20Card.pdf&quot; target=&quot;_blank&quot;&gt;http://www.digilife.be/quickreferences/QRC/Vi%20Reference%20Card.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
			<pubDate>Sat, 03 Mar 2012 12:48:58 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/useful-vi-bash-commands/</guid>
		</item>
		
		<item>
			<title>PHP Upgrade: Cannot load the ionCube PHP Loader - it was built with configuration 2.2.0, whereas running engine is API220090626,NTS</title>
			<link>http://www.web2works.co.uk/blog2works/php-upgrade-cannot-load-the-ioncube-php-loader-it-was-built-with-configuration-2-2-0-whereas-running-engine-is-api220090626-nts/</link>
			<description>&lt;h3&gt;Cannot load the ionCube PHP Loader - it was built with configuration 2.2.0, whereas running engine is API220090626,NTS&lt;/h3&gt;
&lt;p&gt;This PHP error is being caused because IonCube is trying to load the old version. To update this on Debian:&lt;/p&gt;
&lt;p&gt;EDIT: /etc/php5/conf.d/aa_ioncube.ini&lt;br/&gt;FIND: zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so&lt;br/&gt;REPLACE: zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so&lt;/p&gt;
&lt;p&gt;This error was caused when upgrading from PHP 5.2 to 5.3, I wanted to make sure no configuration files was overwritten. So when upgrading via apt-get, I made sure to always select the option for the local configuration files.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
			<pubDate>Sat, 04 Feb 2012 10:24:10 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/php-upgrade-cannot-load-the-ioncube-php-loader-it-was-built-with-configuration-2-2-0-whereas-running-engine-is-api220090626-nts/</guid>
		</item>
		
		<item>
			<title>Clear browser cache</title>
			<link>http://www.web2works.co.uk/blog2works/clear-browser-cache/</link>
			<description>&lt;p&gt;In order to speed up web browsing, modern web browsers are built to  download web pages and store them locally on your computer's hard drive. So when you visit the same page for a second time, the  browser speeds up loading time by loading the page locally from cache  instead of downloading everything again.&lt;/p&gt;
&lt;p&gt;Although storing Internet cache makes web browser faster you sometimes want to overwrite this defualt behaviour, for example to see recent changes made to a webpage you just  uploaded.&lt;/p&gt;
&lt;h2&gt;Clearing Cache Memory&lt;/h2&gt;
&lt;p&gt;This is done by doing what is called a &quot;force refresh&quot; by pressing both  control and F5 buttons simultaneously on your keyboard (depending on  your browser).&lt;/p&gt;
&lt;p&gt;Depending on your operating system all you need to do  is the  following key combination:&lt;br/&gt;&lt;br/&gt; Windows: ctrl + F5&lt;br/&gt; Mac/Apple: Apple + R or command + R&lt;br/&gt; Linux: F5&lt;/p&gt;
&lt;p&gt;If you find this does not work you can find step by  step guides for &lt;a href=&quot;http://www.refreshyourcache.com/en/chrome/&quot;&gt;Chrome&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/ff3/&quot;&gt;Firefox 3&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/ff2/&quot;&gt;Firefox 2&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/ie8/&quot;&gt;Internet Explorer 8&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/ie7/&quot;&gt;Internet Explorer 7&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/ie6/&quot;&gt;Internet Explorer 6&lt;/a&gt;, &lt;a href=&quot;http://www.refreshyourcache.com/en/safari/&quot;&gt;Safari&lt;/a&gt;.&lt;/p&gt;</description>
			<pubDate>Fri, 28 Oct 2011 12:02:43 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/clear-browser-cache/</guid>
		</item>
		
		<item>
			<title>Common MySQL data types</title>
			<link>http://www.web2works.co.uk/blog2works/common-mysql-data-types/</link>
			<description>&lt;p&gt;When designing a new database, each time I have to re-think what types should be used for one or the other columns. So I decided to make my own mainly just for reference but somebody may find this useful.&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Column&lt;/th&gt; &lt;th&gt;Data Type&lt;/th&gt; &lt;th&gt;Comment&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;id &lt;br/&gt;&lt;/td&gt;
&lt;td&gt;INT&lt;/td&gt;
&lt;td&gt;AUTO_INCREMENT, UNSIGNED&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;page name&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;VARCHAR(64)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;meta title&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;VARCHAR(150)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;meta description&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;VARCHAR(160)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;meta keyword&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;VARCHAR(255)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;status&lt;/td&gt;
&lt;td&gt;enum('ENABLED','DISABLED')&lt;/td&gt;
&lt;td&gt;DEFAULT &quot;DISABLED&quot;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;featured&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;TINYINT(1)&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;DEFAULT &quot;0&quot;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;content&lt;/td&gt;
&lt;td&gt;TEXT&lt;/td&gt;
&lt;td&gt;&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;username&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(32)&lt;/td&gt;
&lt;td valign=&quot;top&quot;/&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;password&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(64)&lt;/td&gt;
&lt;td valign=&quot;top&quot;/&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;email address&lt;/td&gt;
&lt;td&gt;VARCHAR(100)&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;phone/mobile&lt;/td&gt;
&lt;td&gt;VARCHAR(20)&lt;br/&gt;&lt;/td&gt;
&lt;td&gt;&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;firstname/company&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(32)&lt;br/&gt;&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;&lt;br/&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;address_1&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(128)&lt;/td&gt;
&lt;td valign=&quot;top&quot;/&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;postcode&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(10)&lt;/td&gt;
&lt;td valign=&quot;top&quot;/&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;file&lt;/td&gt;
&lt;td&gt;VARCHAR(255)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;price&lt;/td&gt;
&lt;td&gt;&lt;span&gt;DECIMAL (7,2)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;UNSIGNED&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;order&lt;/td&gt;
&lt;td&gt;INT(11)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td valign=&quot;top&quot;&gt;ip&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;VARCHAR(15)&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;DEFAULT &quot;0&quot;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;modified&lt;/td&gt;
&lt;td&gt;TIMESTAMP&lt;/td&gt;
&lt;td&gt;on update CURRENT_TIMESTAMP&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;create&lt;/td&gt;
&lt;td&gt;DATETIME&lt;/td&gt;
&lt;td&gt;DEFAULT &quot;0000-00-00 00:00:00&quot;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;forien_key&lt;/td&gt;
&lt;td&gt;INT(11)&lt;/td&gt;
&lt;td&gt; &lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description>
			<pubDate>Sun, 28 Aug 2011 09:45:46 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/common-mysql-data-types/</guid>
		</item>
		
		<item>
			<title>jQuery Selectors</title>
			<link>http://www.web2works.co.uk/blog2works/jquery-selectors/</link>
			<description>&lt;p&gt;Jquery Selectors are used to specify which element from the HTML document you would like to use. If you are familuar with CSS 1-3 you will noticed the simularity.&lt;/p&gt;
&lt;p&gt;All meta-characters ( such as  !&quot;#$%&amp;amp;'()*+,./:;&amp;lt;=&amp;gt;?@[\]^`{|}~ ) must be escapes with two backslashes: \\. &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;All Selector (&quot;*&quot;)&lt;/strong&gt;&lt;br/&gt;Select all elements&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Contains Prefix Selector [name|=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified  attribute with a value either  equal to a given string or starting with  that string followed by a  hyphen (-).&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Contains Selector [name*=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified attribute with a value containing the a given substring.&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Contains Word Selector [name~=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified attribute with a value containing a given word, delimited by spaces&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Ends with Selector [name$=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified  attribute with a value ending  exactly with a given string. The  comparison is case sensitive.&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Equals Selector [name=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified attribute with a value exactly equal to a certain value.&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Not Equal Selector [name!=&quot;value=&quot;]&lt;/strong&gt;&lt;br/&gt;Select elements that either don't have the specified attribute, or do have the specified attribute but not with a certain value&lt;/li&gt;
&lt;li id=&quot;post-594&quot;&gt;&lt;strong&gt;Starts with Selector [name^=&quot;value&quot;]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified attribute with a value beginning exactly with a given string&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;:animated Selector&lt;/strong&gt;&lt;br/&gt;Select all elements that are in the progress of an animation at the time the selector is run&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:button Selector&lt;/strong&gt;&lt;br/&gt;Selects all button elements and elements of type button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:checkbox Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type checkbox&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:checked Selector&lt;/strong&gt;&lt;br/&gt;Matches all elements that are checked&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Child Selector (&quot;parent &amp;gt; child&quot;)&lt;/strong&gt;&lt;br/&gt;Selects all direct child elements specified by &quot;child&quot; of elements specified by &quot;parent&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Class Selector (&quot;.class&quot;)&lt;/strong&gt;&lt;br/&gt;Selects all elements with the given class&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:contains() Selector&lt;/strong&gt;&lt;br/&gt;Select all elements that contain the specified text&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Descendant Selector (&quot;ancestor descendant&quot;)&lt;/strong&gt;&lt;br/&gt;Selects all elements that are descendants of a given ancestor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:disabled Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are disabled&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Element Selector (&quot;element&quot;)&lt;/strong&gt;&lt;br/&gt;Select all elements with the given tag name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:empty Selector&lt;/strong&gt;&lt;br/&gt;Select all elements that have no children (including text nodes)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:enabled Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are enabled&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:eq() Selector&lt;/strong&gt;&lt;br/&gt;Select the element at index n within the matched set&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:even/:odd Selector&lt;/strong&gt;&lt;br/&gt;Selects even elements, zero-indexed and odd&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:file Selector&lt;/strong&gt;&lt;br/&gt;Select all elements of type file&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:first-child Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are the first child of their parent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:first Selecto&lt;/strong&gt;&lt;br/&gt;Selects the first matched element.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:focus selector&lt;/strong&gt;&lt;br/&gt;Selects element if it is currently focused.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:gt() Selector&lt;/strong&gt;&lt;br/&gt;Select all elements at an index greater than index within the matched set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Has Attribute Selector [name]&lt;/strong&gt;&lt;br/&gt;Selects elements that have the specified attribute, with any value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:has() Selector&lt;/strong&gt;&lt;br/&gt;Selects elements which contain at least one element that matches the specified selector.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:header Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are headers, like h1, h2, h3 and so on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:hidden Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are hidden.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ID Selector (“#id”)&lt;/strong&gt;&lt;br/&gt;Selects a single element with the given id attribute.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:image Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type image.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:input Selector&lt;/strong&gt;&lt;br/&gt;Selects all input, textarea, select and button elements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:last-child Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are the last child of their parent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:last Selector&lt;/strong&gt;&lt;br/&gt;Selects the last matched element.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:lt() Selector&lt;/strong&gt;&lt;br/&gt;Select all elements at an index less than index within the matched set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple Attribute Selector [name=&quot;value&quot;][name2=&quot;value2&quot;]&lt;/strong&gt;&lt;br/&gt;Matches elements that match all of the specified attribute filters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple Selector (“selector1, selector2, selectorN”)&lt;/strong&gt;&lt;br/&gt;Selects the combined results of all the specified selectors.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Next Adjacent Selector (“prev + next”)&lt;/strong&gt;&lt;br/&gt;Selects all next elements matching &quot;next&quot; that are immediately preceded by a sibling &quot;prev&quot;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Next Siblings Selector (“prev ~ siblings”)&lt;/strong&gt;&lt;br/&gt;Selects all sibling elements that follow  after the &quot;prev&quot; element, have the same parent, and match the filtering  &quot;siblings&quot; selector.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:not() Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that do not match the given selector.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:nth-child() Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are the nth-child of their parent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:only-child Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are the only child of their parent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:parent Selector&lt;/strong&gt;&lt;br/&gt;Select all elements that are the parent of another element, including text nodes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:password Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type password.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:radio Selector&lt;/strong&gt;&lt;br/&gt;Selects all  elements of type radio.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:reset Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type reset.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:selected Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are selected.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:submit Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type submit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:text Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements of type text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;:visible Selector&lt;/strong&gt;&lt;br/&gt;Selects all elements that are visible.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Reference Manual: &lt;a href=&quot;http://api.jquery.com/category/selectors/&quot;&gt;Jquery&lt;/a&gt;, &lt;a href=&quot;http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier&quot;&gt;W3C&lt;/a&gt;&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 608px; width: 1px; height: 1px; overflow: hidden;&quot;&gt;http://api.jquery.com/category/selectors/&lt;/div&gt;</description>
			<pubDate>Tue, 31 May 2011 12:40:13 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/jquery-selectors/</guid>
		</item>
		
		<item>
			<title>Install SmartyPDT Plugin into Zend Studio</title>
			<link>http://www.web2works.co.uk/blog2works/install-smartypdt-plugin-into-zend-studio/</link>
			<description>&lt;p&gt;This guide explains how to install Smarty PDT with Zend Studio. Smarty PDT is a Smarty template syntax colouring, a feature that is not available by default with Zend Studio.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.web2works.co.uk/assets/Uploads/_resampled/resizedimage600294-smarty-code-highlight.jpg&quot; width=&quot;600&quot; height=&quot;294&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;
&lt;h2&gt;Installing Smarty PDT into Zend Studio&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Be sure to check that the .tpl fule are not associated with any content type. Go to &lt;em&gt;Window &lt;/em&gt;-&amp;gt; &lt;em&gt;Prefences &lt;/em&gt;-&amp;gt; &lt;em&gt;General&lt;/em&gt; -&amp;gt; &lt;em&gt;Content Types&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Download the latest SmartyPDT .zip (currently 0.9.0) from &lt;a href=&quot;http://code.google.com/p/smartypdt/&quot; target=&quot;_blank&quot;&gt;http://code.google.com/p/smartypdt/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Go to &lt;em&gt;Help&lt;/em&gt; -&amp;gt; &lt;em&gt;Install New Software&lt;/em&gt; 
&lt;ul&gt;&lt;li&gt;&lt;em&gt;Click &lt;/em&gt;&lt;em&gt;Add&lt;/em&gt; then click &lt;em&gt;Archive &lt;/em&gt;button and select the .zip downloaded previously&lt;br/&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.web2works.co.uk/assets/smartypdt.jpg&quot; alt=&quot;Zend Studio - Install Plugin SmartyPDT&quot; width=&quot;600&quot; height=&quot;543&quot; title=&quot;&quot;/&gt;&lt;/li&gt;
&lt;li&gt;By default the &lt;em&gt;Group item by category&lt;/em&gt; ensure you unselect this&lt;br/&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.web2works.co.uk/assets/smartypsd2.jpg&quot; alt=&quot;Zend Studio - Install Plugin SmartyPDT&quot; width=&quot;600&quot; height=&quot;543&quot; title=&quot;&quot;/&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;em&gt;Next&lt;/em&gt;, accept the condition and restart Zend Studio&lt;/li&gt;
&lt;li&gt;&lt;span&gt;If you are prompted that this is an unsigned package, just ignore the warning and install it anyway.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Right click on the PHP project in the PHP Explorer and Select &lt;em&gt;Configure &lt;/em&gt;-&amp;gt; &lt;em&gt;Add Smarty Support&lt;/em&gt;&lt;br/&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Update/Fixes if this does not work by default&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Check you have the Smarty Editor selected as default for *tpl file in File Association in &lt;em&gt;Preferences -&amp;gt; Ceneral -&amp;gt; Editors -&amp;gt; File Associations&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;If after restarting Zend Studio you may find that the .tpl file type is locked. The only option I found was to remove the .tpl directly from the plugin PDT. &lt;/li&gt;
&lt;li&gt;Firstly close Zend Studio to edit the core files:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Go to the plugins folder where Zend Studio is installed (Mine was C:\\Program Files\Zend\Zend Studio - 8.0.0\plugins&lt;/li&gt;
&lt;li&gt;File the file org.eclipse.php.core_2.2.1.vxxxxxxxx-xxxx.jar - the exact version of the plugin may change with updates to the PDT&lt;/li&gt;
&lt;li&gt;You can infact open this file as a normal archieve file just like a .zip file. Right click a select open with is this does not open by default, if this does not work try renaming the file extension.&lt;/li&gt;
&lt;li&gt;Extract all the file and edit the the plugin.xml file  
&lt;ul&gt;&lt;li&gt;Search for &quot;tpl&quot;, this was line number 53 and remove &quot;tpl&quot; from the list&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
			<pubDate>Sun, 22 May 2011 21:46:04 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/install-smartypdt-plugin-into-zend-studio/</guid>
		</item>
		
		<item>
			<title>FREE Search Engine Optimisation Tips</title>
			<link>http://www.web2works.co.uk/blog2works/free-search-engine-optimisation-tips/</link>
			<description>&lt;p&gt;The following steps will help your Google search rankings:&lt;br/&gt;&lt;br/&gt;-------- Create Quality Content&lt;br/&gt;This is the most important one; make sure you have good, original content that people will want to read.&lt;br/&gt;&lt;br/&gt;-------- Create a Lot of Content&lt;br/&gt;The more pages, the better. This can easily be achieved by creating your own pages with lots of content. &lt;br/&gt;&lt;br/&gt;-------- Keep Content Fresh&lt;br/&gt;Keep updating the site regularly. &lt;br/&gt;&lt;br/&gt;-------- Remove Duplicates&lt;br/&gt;Do not create pages with the same, or almost same, content. The CMS will ensure that no two pages have the same name or URL&lt;br/&gt;&lt;br/&gt;-------- Versatile, Precise Wording&lt;br/&gt;Alternate the wording for repeated phrases if you like to target them in web searches.&lt;br/&gt;&lt;br/&gt;-------- Focus on Important Keywords&lt;br/&gt;Imagine your audience and what keywords they might enter in a search, and use those words.&lt;br/&gt;&lt;br/&gt;-------- Create Valid HTML&lt;br/&gt;Each HTML version can be validate, obviously Web2Works only develops to the highest strict standards. &lt;br/&gt;You can validate your website for free here:&lt;br/&gt;W3C Validator&lt;br/&gt;http://validator.w3.org/&lt;br/&gt;&lt;br/&gt;Link Checker&lt;br/&gt;http://validator.w3.org/checklink&lt;br/&gt;&lt;br/&gt;-------- Create Structured HTML&lt;br/&gt;Use headings and other phrase mark-up (h1, h2, em, strong). These are HTML code that wraps around each different sections of text, each element represents importance of the page, allowing search engines to easily find the correct content.&lt;br/&gt;&lt;br/&gt;-------- Provide text-alternatives&lt;br/&gt;When including images, especially those containing text, provide a text-alternative via the &quot;alt&quot;-attribute.&lt;br/&gt;&lt;br/&gt;-------- Use Meaningful Meta-Data&lt;br/&gt;Every page should have a unique title. You might also want to add meta-keywords and a meta-description. Although this was abused in the early days of the Internet and most modern Search Engines will ignore them completley. Although if you have the time I would recommend entering as much content as possible to the page. One day the Google of the future may change their ways to reading the meta data. &lt;br/&gt;&lt;br/&gt;-------- Get a Reliable, Robust, Fast Server&lt;br/&gt;Get your website on a proper server shared with a few websites not thousands with the cheap hosts.&lt;br/&gt;&lt;br/&gt;-------- Create Meaningful File-names&lt;br/&gt;Don't abbreviate file and folder names, but instead use the full keywords which are important for that page.&lt;br/&gt;&lt;br/&gt;-------- Add Your URL to Search Engines&lt;br/&gt;Use services like following:&lt;br/&gt;Google's Add URL&lt;br/&gt;://www.google.com/addurl.html&lt;br/&gt;&lt;br/&gt;-------- Communicate Your Site to Others&lt;br/&gt;Write to other people who you think might be interested and tell them about your site (but do not rely on spamming newsgroups).&lt;br/&gt;&lt;br/&gt;-------- Test Your Ranking and Fine-tune&lt;br/&gt;Check how Google reacts now that you've done the changes.&lt;/p&gt;</description>
			<pubDate>Wed, 27 Apr 2011 05:37:31 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/free-search-engine-optimisation-tips/</guid>
		</item>
		
		<item>
			<title>What&#39;s the difference between Website Accessibility &amp; Usability </title>
			<link>http://www.web2works.co.uk/blog2works/what-s-the-difference-between-website-accessibility-and-usability/</link>
			<description>&lt;p&gt;Both Website Accessibility and Usability are often misused and confused. Usability is a measure of how easy it is to use a site, while accessibility relates to whether the site can be accessed by everybody.&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Website Usability&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;Is a measure of how easy a system is to use and can be applied to any interaction between a user and the website. Usability is made up of several key factors:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Ease of learning&lt;/strong&gt; - how steep the learning curve is.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficiency of use&lt;/strong&gt; - how quickly a user can perform a task on a website, may be finding a certain piece of information, using the  navigation menu and many other tasks depending on the website.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ease of memorisation&lt;/strong&gt; - how simple (or difficult) it is to remember how to perform a particular task.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Error trapping&lt;/strong&gt; - ensuring errors are prevented by informing the user how to use the website before errors occur. When they  do occur the user experience is not completely broken by providing feedback to the user why the error has accrued. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Satisfaction&lt;/strong&gt; - a user is able to perform a given task on a site satisfactorily.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;&lt;strong&gt;Website Accessibility&lt;/strong&gt;:&lt;/h2&gt;
&lt;p&gt;Allows for equal access to all users regardless of technological device and physical means. This ranges from people with mobile phones, screen readers and monitor size. Accessibility can even cover how accessible your website is for users with slow connections. A blind user will use a screen reader, whilst a businessman uses a mobile phone and granny turns her font size up, accessibility is about ensuring  your site can be accessed equally in all these scenarios&lt;/p&gt;</description>
			<pubDate>Mon, 25 Apr 2011 18:58:28 +0100</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/what-s-the-difference-between-website-accessibility-and-usability/</guid>
		</item>
		
		<item>
			<title>A good example of how to over comment PHP code</title>
			<link>http://www.web2works.co.uk/blog2works/a-good-example-of-how-to-over-comment-php-code/</link>
			<description>&lt;p&gt;Opencart header navtion - Three levels deep &lt;a href=&quot;http://www.shahz.net/web-development/open-cart-header-navigation-three-level-list.html&quot;&gt;http://www.shahz.net/web-development/open-cart-header-navigation-three-level-list.html&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Thu, 24 Mar 2011 22:41:35 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/a-good-example-of-how-to-over-comment-php-code/</guid>
		</item>
		
		<item>
			<title>jQuery Default Input Text - placeholder HTML5</title>
			<link>http://www.web2works.co.uk/blog2works/jQuery-default-input-text/</link>
			<description>&lt;p&gt;jQuery plugin to provide a backwards compatible default input text fully browser compatible using JavaScript.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;// Input Clear Default&lt;br/&gt;    $('input[placeholder],textarea[placeholder]').each(function() {&lt;br/&gt;        if($(this).val() === '') {&lt;br/&gt;            $(this).val($(this).attr('placeholder'));    &lt;br/&gt;        }&lt;br/&gt;        $(this).focus(function() {&lt;br/&gt;            if($(this).val() == $(this).attr('placeholder')) {&lt;br/&gt;                $(this).val('');    &lt;br/&gt;            }&lt;br/&gt;        });&lt;br/&gt;        $(this).blur(function() {&lt;br/&gt;            if($(this).val() === '') {&lt;br/&gt;                $(this).val($(this).attr('placeholder'));    &lt;br/&gt;            }&lt;br/&gt;        });&lt;br/&gt;    });&lt;/pre&gt;</description>
			<pubDate>Mon, 21 Mar 2011 00:35:11 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/jQuery-default-input-text/</guid>
		</item>
		
		<item>
			<title>jQuery Select Option:Selected</title>
			<link>http://www.web2works.co.uk/blog2works/jquery-select-option-selected/</link>
			<description>&lt;p&gt;A really simple Options selected fully cross browser that even works in IE6.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;jQuery Select Option&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;prettycode&quot;&gt;$('select').change(function () {&lt;br/&gt;     $(this).find('option').removeClass(&quot;selected&quot;);&lt;br/&gt;     $(this).find('option:selected').addClass(&quot;selected&quot;);&lt;br/&gt;});&lt;/pre&gt;</description>
			<pubDate>Sun, 20 Mar 2011 22:54:28 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/jquery-select-option-selected/</guid>
		</item>
		
		<item>
			<title>Element section not allowed as child of element ul in this content</title>
			<link>http://www.web2works.co.uk/blog2works/element-section-not-allowed-as-child-of-element-ul-in-this-content/</link>
			<description>&lt;p&gt;&lt;span&gt;HTML5 Validation Error Message: Element section not allowed as child of element ul in this context. (Suppressing further errors from this subtree.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This means that you have: &amp;lt;ul&amp;gt; -&amp;gt; &amp;lt;section&amp;gt;&lt;/p&gt;
&lt;p&gt;It needs to be inside of an &amp;lt;li&amp;gt; so should look like this &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;&amp;lt;section&amp;gt;text&amp;lt;/section&amp;gt;&amp;lt;/li&amp;gt;&lt;/p&gt;</description>
			<pubDate>Tue, 15 Mar 2011 11:23:42 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/element-section-not-allowed-as-child-of-element-ul-in-this-content/</guid>
		</item>
		
		<item>
			<title>Creating Modern website using HTML5 </title>
			<link>http://www.web2works.co.uk/blog2works/creating-modern-website-using-html5/</link>
			<description>&lt;p&gt;HTML has some great new features to offer, such as the new semantic elements that aim to give meaning to the various parts of a modern Website. Over the past few years concepts such as Web 2.0, Rich Internet Applications and the Semantic Web have all pushed HTML, CSS and JavaScript beyond their limits replying on plugins such as Adobe Flash to power components sch as video and audio. For many years, the Web has relied on external                     plugins to deliver features that cannot be natively supported by the                     Web browser, particularly in terms of 2D drawing, animation, and                     multimedia. The latest versions of the HTML and CSS specification aim                     to remove the need for these additional browser components to                     facilitate such features, as well as reduce the amount of JavaScript                     required.&lt;/p&gt;
&lt;p&gt;HTML5 is a relatively young specification, and as a result, browser                     support is limited to:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/upgrade.html&quot; target=&quot;new&quot;&gt;Mozilla Firefox (version 3.5+)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.apple.com/safari/&quot; target=&quot;new&quot;&gt;Apple Safari (version 4.0+)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.opera.com/&quot; target=&quot;new&quot;&gt;Opera (version 10.0+)&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.google.com/chrome&quot; target=&quot;new&quot;&gt;Google Chrome (version 3.0+)&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The HTML5 specification includes a series of new semantic elements that                     is used to give some meaning to the various sections or parts of a                     Website, such as a &amp;lt;header&amp;gt;, &amp;lt;footer&amp;gt;, &amp;lt;navigation&amp;gt; etc. Previously you would typically use &amp;lt;div&amp;gt; elements                     to create these parts, using ID or class attributes to differentiate                     them from each other. The problem with this is that this has no                     semantic meaning, as there are no strict rules defined that specify                     what class names or IDs are to be used, making it extremely difficult                     for search engines to determine which sections of the website hav emost importance.&lt;/p&gt;
&lt;p&gt;The main semantic elements that HTML5 introduces are:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&amp;lt;header&amp;gt;&lt;/strong&gt;  - Define a header section of the website.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;footer&amp;gt;&lt;/strong&gt; - Like the &amp;lt;header&amp;gt; element athough for the footer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;nav&amp;gt;&lt;/strong&gt; - Used only for the primary navigation links on a Web                         page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;article&amp;gt;&lt;/strong&gt; - An                         independent item on the page that can be distributed on its own,                         such as a news item, blog post, or comment. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;section&amp;gt;&lt;/strong&gt; - This element represents a section of a document or application,                         such as a chapter or a section of an article or tutorial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt;aside&amp;gt;&lt;/strong&gt; - This new element can be used to mark up a sidebar or some other                         content that is considered somewhat separate to the content around                         it. An example of this might be advertising blocks. &lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;&lt;a name=&quot;N1021C&quot;&gt;&lt;span&gt;The &amp;lt;canvas&amp;gt;                     element&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &amp;lt;canvas&amp;gt; element was standardised and included in the HTML5 specification, along with                     a series of 2D drawing APIs that can be used to create shapes, text,                     transitions, and animations inside the element. The &amp;lt;canvas&amp;gt; element itself is quite basic, defining the                     width, height, and unique ID for the object. The developer must then                     use a series of JavaScript APIs to actually draw objects on the                     canvas, typically when the Web page has finished rendering. These APIs                     allow the developer to draw shapes and lines; apply color, opacity, and                     gradients; create text; transform canvas objects; and perform                     animation. The APIs also allow the &amp;lt;canvas&amp;gt; to be                     interactive and respond to user input such as mouse events and key                     events, facilitating the production of games and Web applications on                     the canvas.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N10231&quot;&gt;&lt;span&gt;Playing &amp;lt;audio&amp;gt;                     and &amp;lt;video&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In recent years, the popularity of video sharing sites such as YouTube has seen a huge explosion in                     the use of the Web for multimedia streaming. Unfortunately, the Web                     was not built with such content in mind, as a result the                     provision of video and audio has by                     Flash Video (.flv) file format and the Adobe Flash platform.&lt;/p&gt;
&lt;p&gt;HTML5, however, includes support for two new elements,                     &amp;lt;audio&amp;gt; and &amp;lt;video&amp;gt;, which allow Web                     developers to include multimedia content without relying on the user                     to have additional browser plug-ins installed such as Flash. Several browsers,                     including Mozilla Firefox, Apple Safari, and Google Chrome, have begun                     supporting these new elements and providing standard browser playback                     controls, should the user choose to use them. In addition, a set of                     standard JavaScript APIs has been provided to allow developers to                     create their own playback controls, should they wish to do so.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N10249&quot;&gt;&lt;span&gt;Local storage and offline                     applications&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Web developers have traditionally used cookies to store information on                     a visitor's local machine, allowing a Web page to read this                     information back at a later point. While cookies are very useful for                     storing basic data, they are limited by the fact that Web browsers are                     not required to keep more than 20 cookies per Web server or more than                     4KB of data per cookie (including both name and value). In addition,                     they are sent to the Web server with every HTTP request, which is a                     waste of resources.&lt;/p&gt;
&lt;p&gt;HTML5 provides a solution for these problems with the Local Storage                     APIs, which are covered in a separate specification to the main HTML5                     document. This set of APIs allows developers to store information on                     the visitor's computer while remaining reasonably confident that they                     will still be there at a later date. In addition, the information is                     accessible at any point (even after the page has rendered) and is not                     loaded automatically with each HTTP request. The specification                     includes same-origin restrictions, which prevent Web sites from                     reading or changing data stored by other Web sites.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N10258&quot;&gt;&lt;span&gt;Web form enhancements&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;HTML5 aims to fill some of the gaps left by its                     predecessor in this space by providing a whole range of new form                     input types:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;color&lt;/li&gt;
&lt;li&gt;date&lt;/li&gt;
&lt;li&gt;datetime&lt;/li&gt;
&lt;li&gt;datetime-local&lt;/li&gt;
&lt;li&gt;email&lt;/li&gt;
&lt;li&gt;month&lt;/li&gt;
&lt;li&gt;number&lt;/li&gt;
&lt;li&gt;range&lt;/li&gt;
&lt;li&gt;search&lt;/li&gt;
&lt;li&gt;tel&lt;/li&gt;
&lt;li&gt;time&lt;/li&gt;
&lt;li&gt;url&lt;/li&gt;
&lt;li&gt;week&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Support for these new form fields is quite limited. The                     Mobile Safari browser on the iPhone makes use of some of these new                     types to change the type of keyboard presented to the user (for                     example, with the e-mail type, the @ symbol and .com shortcuts will be                     shown). Also, Opera provides some new widgets for many of these                     controls, including a spinner for the number type and a calendar date                     picker for the date-related types. The most widely available type of                     these new offerings is the range type, which is rendered as a slider                     by Opera, Safari, and Google Chrome.&lt;/p&gt;
&lt;h2&gt;Browser Support&lt;/h2&gt;
&lt;p&gt;In addition to these new input types, HTML5 also supports two major new                     features for form fields. The first of these is autofocus, which tells                     a browser to automatically give focus to a particular form field when                     the page has rendered, without requiring JavaScript code to do so. The                     second enhancement is the placeholder attribute, which allows the                     developer to define the text that will appear in a textbox-based                     control when its contents are empty. &lt;a name=&quot;f1&quot;&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N102D3&quot;&gt;&lt;span&gt;Other new features&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;HTML5 includes so many new features; it's impossible to cover them all                     in this tutorial. This section provides a brief overview of some of                     the other enhancements in the specification.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Web worker&lt;/strong&gt; - This allows JavaScript code to be set to run in a background                         process facilitating the development of multi-threaded                         applications. The chief benefit that Web workers offer developers                         is that intensive calculations can be processed in the background                         without adversely affecting the speed of the user interface.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geolocation&lt;/strong&gt; - HTML5 includes a geolocation API that allows a Web application to                         determine your current geographical location, assuming the device                         you are targeting provides features for finding such information                         (for example, GPS on a cellphone). If you do not have a device that                         supports this feature (such as an iPhone or an Android 2.0-based                         smartphone), you can use Firefox and download a plug-in that                         allows you to set your location manually.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drag and Drop - &lt;/strong&gt;Another interesting feature is the inclusion of a drag and drop                         API. Up until now, implementation of drag and drop without                         plug-ins was dependent on some very complex JavaScript or the use                         of a JavaScript library such as jQuery&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N10347&quot;&gt;&lt;strong&gt;Attribute selectors&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E[foo^=&quot;bar&quot;] - &lt;/strong&gt;Select an element, E, whose foo                         attribute begins exactly with the string                         bar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E[foo$=&quot;bar&quot;]&lt;/strong&gt; - Select an element, E, whose foo                         attribute ends exactly with the string                         bar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E[foo*=&quot;bar&quot;]&lt;/strong&gt; - Select an element, E, whose foo                         attribute contains the string bar&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N10377&quot;&gt;&lt;strong&gt;Structural                     pseudo-classes&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E:root&lt;/strong&gt; - Select an element, E, the root of the document (the                         &amp;lt;html&amp;gt; tag)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:nth-child(n)&lt;/strong&gt; - Select an element, E, the n-th child of its parent element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:nth-last-child(n)&lt;/strong&gt; - Select an element, E, the n-th last child of its parent                         element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:nth-of-type(n)&lt;/strong&gt; - Select an element, E, the n-th sibling of its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:nth-last-of-type(n)&lt;/strong&gt; - Select an element, E, the n-th last sibling of its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:last-child&lt;/strong&gt; - Select an element, E, whose is the last child of its parent element                         (Note that E:first-child was previously defined in CSS2)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:first-of-type&lt;/strong&gt; - Select an element, E, the first sibling of its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:last-of-type&lt;/strong&gt; - Select an element, E, the last sibling of its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:only-child&lt;/strong&gt; - Select an element, E, the only child of its parent element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:only-of-type&lt;/strong&gt; - Select an element, E, the only sibling of its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:empty&lt;/strong&gt; - Select an element, E, that has no children (including text                         nodes)&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N103C2&quot;&gt;&lt;strong&gt;The                     target pseudo-class&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E:target&lt;/strong&gt; - Select an element, E, who is the target of the referring URI&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N103D5&quot;&gt;&lt;strong&gt;UI element states                     pseudo-classes&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E:enabled&lt;/strong&gt; - Select a user interface element, E, which is enabled&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:disabled&lt;/strong&gt; - Select a user interface element, E, which is disabled&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E:checked&lt;/strong&gt; - Select a user interface element, E (a radio button or checkbox),                         which is checked or selected&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N103F0&quot;&gt;&lt;strong&gt;Negation pseudo-class&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E:not(s)&lt;/strong&gt; - Select an element, E, which does not match the simple selector                         s&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N10402&quot;&gt;&lt;strong&gt;General sibling                     combinator&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;E ~ F&lt;/strong&gt; - Select an element, F, which is preceded by an element, E&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Browser support for the new attribute selectors and the general sibling                     combinator is excellent, as they work on almost all modern Web                     browsers. Support for the new pseudo-classes is included with the                     latest versions of most browsers, but you may need to include                     fallbacks for older browsers such as Internet Explorer 6/7 and Firefox                     3.0.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N10414&quot;&gt;&lt;span&gt;New effects&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Although the new selectors are probably the features that reduce                     developers' headaches the most, the enhancements people most want to                     see are the shiny new effects that are available. These are                     facilitated through a slew of new CSS properties, including:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;background (now supports multiple backgrounds)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;background-clip&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;background-origin&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;background-size&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;border-radius (rounded corners)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;border-image&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;border-color (gradient borders)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;box-shadow (drop shadow on boxes without images)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;box-sizing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;opacity&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;outline-offset&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;resize&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;text-overflow&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;text-shadow&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;word-wrap&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h3&gt;&lt;a name=&quot;N10450&quot;&gt;&lt;span&gt;Multicolumn layouts&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;CSS3 multicolumn layouts allow for text to be spread over a number of                     columns, like you might find in a newspaper. This can be done in two                     ways, either using the column-width property, where you define how                     wide each column should be (the number of columns is determined by the                     space available to the container), or using column-count, where you                     define the number of columns that should be used. The width will then                     vary based on the space available to each column.&lt;/p&gt;
&lt;p&gt;Other features of multicolumn layouts include the column-gap property,                     which allows the developer to define the space that should be present                     between columns when the column-width method is used. Another useful                     addition is the column-rule property, which allows a border-style rule                     to be placed between columns. Finally there is the                     column-space-distribution property, which determines how left over                     space should be allocated between the columns.&lt;/p&gt;
&lt;p&gt;Multicolumn layouts are currently supported by Mozilla and WebKit                     browsers. At present, these are implemented by means of temporary                     proprietary properties prefixed with -moz or -webkit, respectively.                     When the specification has been finalized, these browsers will                     eventually move to the CSS standard properties.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;N1045F&quot;&gt;&lt;span&gt;Web fonts&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Web fonts were actually proposed for CSS2 and have been available in                     Microsoft Internet Explorer since version 5. Unfortunately, this                     required the use of the proprietary .eot (Embedded Open Type) font                     format, and none of the other browser vendors chose to implement it.                     As a result, Web fonts never really took off on CSS2-based Web                     sites.&lt;/p&gt;
&lt;h2&gt;Basic HTML5 Page&lt;/h2&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;!doctype html&amp;gt;&lt;br/&gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;&lt;br/&gt;    &amp;lt;head&amp;gt;&lt;br/&gt;        &amp;lt;meta charset=&quot;utf-8&quot; /&amp;gt;&lt;br/&gt;        &amp;lt;title&amp;gt;HTML5 Demo&amp;lt;/title&amp;gt;&lt;br/&gt;        &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;styles.css&quot; /&amp;gt;&lt;br/&gt;        &amp;lt;!--[if IE]&amp;gt;&lt;br/&gt;        &amp;lt;script src=&quot;http://html5shiv.googlecode.com/svn/trunk/html5.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br/&gt;        &amp;lt;![endif]--&amp;gt;&lt;br/&gt;    &amp;lt;/head&amp;gt;&lt;br/&gt;    &amp;lt;body&amp;gt;   &lt;br/&gt;&amp;lt;header&amp;gt;&lt;br/&gt;    &amp;lt;hgroup&amp;gt;&lt;br/&gt;        &amp;lt;h1&amp;gt;Company Name&amp;lt;/h1&amp;gt;&lt;br/&gt;        &amp;lt;h2&amp;gt;An example of HTML5 and CSS3 in action&amp;lt;/h2&amp;gt;&lt;br/&gt;    &amp;lt;/hgroup&amp;gt;&lt;br/&gt;&amp;lt;/header&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;nav&amp;gt;&lt;br/&gt;    &amp;lt;ul&amp;gt;&lt;br/&gt;        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;About Us&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;        &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;Contact Us&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br/&gt;    &amp;lt;/ul&amp;gt;&lt;br/&gt;&amp;lt;/nav&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;article&amp;gt;&lt;br/&gt;    &amp;lt;header&amp;gt;&lt;br/&gt;        &amp;lt;time datetime=&quot;2010-01-12&quot; pubdate&amp;gt;&lt;br/&gt;            &amp;lt;span&amp;gt;Jan&amp;lt;/span&amp;gt; 12&lt;br/&gt;        &amp;lt;/time&amp;gt;&lt;br/&gt;        &amp;lt;h1&amp;gt;&lt;br/&gt;            &amp;lt;a href=&quot;#&quot; title=&quot;Link to this post&quot; rel=&quot;bookmark&quot;&amp;gt;Article Heading&amp;lt;/a&amp;gt;&lt;br/&gt;        &amp;lt;/h1&amp;gt;&lt;br/&gt;    &amp;lt;/header&amp;gt;&lt;br/&gt;    &amp;lt;p&amp;gt;This is an article that demonstrates some of the new features  that HTML5 and CSS3 has to offer. This article contains several sections, each with its own heading, as well as a video element which will play a video without Flash on browsers that support it.&amp;lt;/p&amp;gt;&lt;br/&gt;    &amp;lt;section&amp;gt;&lt;br/&gt;        &amp;lt;header&amp;gt;&lt;br/&gt;            &amp;lt;h1&amp;gt;This is a section heading&amp;lt;/h1&amp;gt;&lt;br/&gt;        &amp;lt;/header&amp;gt;&lt;br/&gt;        &amp;lt;p&amp;gt;This is an example of a basic section of a document.  A section can refer to different parts of a document, application, or page. According to the draft W3C spec, HTML5 sections usually have headings.&amp;lt;/p&amp;gt;&lt;br/&gt;    &amp;lt;/section&amp;gt;&lt;br/&gt;&amp;lt;/article&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;footer&amp;gt;&lt;br/&gt;    &amp;lt;p&amp;gt;&amp;amp;copy; 2009 Company Name. All rights reserved.&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;/footer&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;/body&amp;gt;&lt;br/&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;h3&gt;Video Elemment&lt;/h3&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;video src=&quot;http://www.double.co.nz/video_test/transformers480.ogg&quot; controls autoplay&amp;gt;&lt;br/&gt;            &amp;lt;div&amp;gt;&lt;br/&gt;                &amp;lt;p&amp;gt;This video will work in Mozilla Firefox or Google Chrome only.&amp;lt;/p&amp;gt;&lt;br/&gt;            &amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;/video&amp;gt;&lt;br/&gt;&lt;/pre&gt;
&lt;h3&gt;&lt;a name=&quot;N105E6&quot;&gt;&lt;span&gt;Web form enhancements&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;section&amp;gt;&lt;br/&gt;    &amp;lt;header&amp;gt;&lt;br/&gt;        &amp;lt;h1&amp;gt;This is a feedback form&amp;lt;/h1&amp;gt;&lt;br/&gt;    &amp;lt;/header&amp;gt;&lt;br/&gt;    &amp;lt;form&amp;gt;&lt;br/&gt;        &amp;lt;label for=&quot;contact_name&quot;&amp;gt;Name:&amp;lt;/label&amp;gt;&lt;br/&gt;        &amp;lt;input id=&quot;contact_name&quot; placeholder=&quot;Enter your name&quot; autofocus /&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;label for=&quot;contact_email&quot;&amp;gt;E-mail:&amp;lt;/label&amp;gt;&lt;br/&gt;        &amp;lt;input type=&quot;email&quot; id=&quot;contact_email&quot; placeholder=&quot;Enter your email address&quot; /&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;label for=&quot;contact_phone&quot;&amp;gt;Phone:&amp;lt;/label&amp;gt;&lt;br/&gt;        &amp;lt;input type=&quot;tel&quot; id=&quot;contact_phone&quot; placeholder=&quot;Enter your phone number&quot; /&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;label for=&quot;contact_callback&quot;&amp;gt;Callback on:&amp;lt;/label&amp;gt;&lt;br/&gt;        &amp;lt;input type=&quot;datetime&quot; id=&quot;contact_callback&quot; /&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;label for=&quot;contact_priority&quot;&amp;gt;Priority:&amp;lt;/label&amp;gt;&lt;br/&gt;        &amp;lt;input type=&quot;range&quot; min=&quot;1&quot; max=&quot;5&quot; value=&quot;1&quot; id=&quot;contact_priority&quot; /&amp;gt;&lt;br/&gt;&lt;br/&gt;        &amp;lt;input type=&quot;submit&quot; value=&quot;Request Call&quot; /&amp;gt;&lt;br/&gt;    &amp;lt;/form&amp;gt;&lt;br/&gt;&amp;lt;/section&amp;gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;You'll notice that the first input elemtn has the placeholder                     text &quot;Enter your name&quot; and is set to autofocus. Supporting browsers                     will automatically switch focus to this element when the page has been                     rendered. The next element is of type &quot;email&quot; and again contains a placeholder                     text value. The only browser that recognizes this type of input                     element as anything special is Opera, which displays a mail icon in                     the field to signify that it's an email field. The next field of interest is the datetime field with the label                     &quot;Callback on:&quot;. In supporting browsers, this will display a date and                     time picker. In Opera, this displays as two controls, a textbox with a                     datepicker and a spinner for the time. Finally, you'll see a control of the type range, with min, max, and                     value attributes set. This control will be rendered by Safari, Chrome,                     and Opera as a slider, with a minimum value of 1, selected by default,                     and a maximum value of 5. Unsupported browsers will simply display                     this as a textbox with the text value set to 1.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
			<pubDate>Sat, 12 Mar 2011 16:57:22 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/creating-modern-website-using-html5/</guid>
		</item>
		
		<item>
			<title>How to upgrade PHP 5.2 to PHP 5.3 on Debian Lenny</title>
			<link>http://www.web2works.co.uk/blog2works/how-to-upgrade-php-5-2-to-php-5-3-on-debian-lenny/</link>
			<description>&lt;p&gt;Its very simple to upgrade PHP 5.2 to PHP 5.3 for Debian Lenny and it's easy to upgrade via a few commands with the apt-get&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Add these lines to the apt sources at /etc/apt/sources.list
&lt;pre class=&quot;prettyprint&quot;&gt;deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;The dotdeb repositry will require you to download and import the key
&lt;pre class=&quot;prettyprint&quot;&gt;wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Now all that is left is to upgrade:
&lt;pre class=&quot;prettyprint&quot;&gt;apt-get update
apt-get dist-upgrade&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;I have to confirm a couple of files that have to be overwriten. &lt;/li&gt;
&lt;/ol&gt;</description>
			<pubDate>Thu, 03 Mar 2011 22:39:13 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/how-to-upgrade-php-5-2-to-php-5-3-on-debian-lenny/</guid>
		</item>
		
		<item>
			<title>Backup2l</title>
			<link>http://www.web2works.co.uk/blog2works/backup2l/</link>
			<description>&lt;h3&gt;Description&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;backup2l&lt;/em&gt; is a lightweight command line tool for generating, maintaining and restoring backups on a mountable file system (e. g. hard disk). The main design goals are are low maintenance effort, efficiency, transparency and robustness. In a default installation, backups are created autonomously by a cron script.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;backup2l&lt;/em&gt; supports hierarchical differential backups with a user-specified number of levels and backups per level. With this scheme, the total number of archives that have to be stored only increases logarithmically with the number of differential backups since the last full backup. Hence, small incremental backups can be generated at short intervals while time- and space-consuming full backups are only sparsely needed.&lt;/p&gt;
&lt;p&gt;The restore function allows to easily restore the state of the file system or arbitrary directories/files of previous points in time. The ownership and permission attributes of files and directories are correctly restored.&lt;/p&gt;
&lt;p&gt;An integrated split-and-collect function allows to comfortably transfer all or selected archives to a set of CDs or other removable media.&lt;/p&gt;
&lt;p&gt;All control files are stored together with the archives on the backup device, and their contents are mostly self-explaining. Hence, in the case of an emergency, a user does not only have to rely on the restore functionality of &lt;em&gt;backup2l&lt;/em&gt;, but can - if necessary - browse the files and extract archives manually.&lt;/p&gt;
&lt;p&gt;For deciding whether a file is new or modified, &lt;em&gt;backup2l&lt;/em&gt; looks at its name, modification time, size, ownership and permissions. Unlike other backup tools, the i-node is not considered in order to avoid problems with non-Unix file systems like FAT32.&lt;/p&gt;
&lt;h3&gt;Screenshots&lt;/h3&gt;
&lt;h4&gt;Generating a backup: mail received from cron&lt;/h4&gt;
&lt;p&gt;The monitored area covers 26803 (=23733+3053) files and directories and over 2.2 GB of data. Look at the time stamps!&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;backup2l v0.9 by Gundolf Kiefer

Tue Nov  6 07:58:00 CET 2001

Mounting /disk2...

Running pre-backup procedure...
  writing dpkg selections to /root/getselections.log...

Removing old backups...

Preparing differential level-3 backup &amp;lt;all.1104&amp;gt; based on &amp;lt;all.1103&amp;gt;...
 657 / 23745 file(s), 94 / 3058 dir(s), 63945 / 2332639 KB (uncompressed)
 skipping: 498 file(s), 14 dir(s), 3144527 KB (uncompressed)

Creating archive...
Checking TOC of tar file (&amp;lt; real file, &amp;gt; archive entry)...
Creating check file for &amp;lt;all.1104&amp;gt;...

Tue Nov  6 07:58:41 CET 2001


Summary
=======

Archive     Date       | Size (KB) | Skipped  Files+Dirs |  New  Obs. | Errors
------------------------------------------------------------------------------
all.1       2001-07-15 |   1475248 |     620       17795 |17795     0 |     45
all.101     2001-07-27 |    235720 |     617       17002 |  812  1605 |      2
all.102     2001-08-19 |    210648 |     626       23446 | 7077   633 |      1
all.103     2001-08-30 |    125396 |     670       23796 | 1963  1613 |      0
all.104     2001-09-07 |    203880 |     669       25597 | 5353  3552 |      1
all.105     2001-09-20 |     87076 |     409       24333 | 2192  3456 |      6
all.106     2001-10-01 |     88492 |     409       27611 | 4591  1313 |      1
all.107     2001-10-12 |     67624 |     409       26589 | 1194  2216 |      0
all.108     2001-10-21 |    111580 |     506       26553 | 1351  1387 |      0
all.1081    2001-10-21 |       948 |     506       26554 |   70    69 |      0
all.1082    2001-10-22 |       164 |     506       26554 |   90    90 |      0
all.1083    2001-10-23 |     46680 |     506       27814 | 1465   205 |      0
all.1084    2001-10-24 |     29672 |     506       28578 | 1111   347 |      0
all.1085    2001-10-25 |     28272 |     506       26869 |  282  1991 |      0
all.1086    2001-10-26 |     45000 |     506       26866 |  314   317 |      0
all.1087    2001-10-27 |     33136 |     506       27162 |  610   314 |      0
all.1088    2001-10-28 |     12280 |     506       27645 |  673   190 |      0
all.11      2001-10-29 |    822056 |     506       27725 |13582  3652 |      8
all.1101    2001-10-30 |     20888 |     506       23707 |  858  4876 |      0
all.1102    2001-10-31 |     11336 |     512       26807 | 3372   272 |      0
all.1103    2001-11-05 |       312 |     512       26786 |  173   194 |      0
all.1104    2001-11-06 |     49592 |     512       26803 |  751   734 |      0

Filesystem            Size  Used Avail Use% Mounted on
/dev/hde1             5.8G  3.5G  2.3G  61% /disk2

Unmounting /disk2...
&lt;/pre&gt;
&lt;h4&gt;Restoring the directory &lt;em&gt;/home/home/gundolf/prog/&lt;/em&gt; from snapshot &lt;em&gt;&amp;lt;all.1102&amp;gt;&lt;/em&gt;&lt;/h4&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;lilienthal:/scratch# backup2l -t 1102 -r /home/gundolf/prog/
backup2l v0.9 by Gundolf Kiefer

Mounting /disk2...

Active files in &amp;lt;all.1102&amp;gt;: 246
 found in all.1102:     119   (  127 left)
 found in all.1101:       7   (  120 left)
 found in all.11:       120   (    0 left)

Restoring 35 directories...
Restoring files...
  all.11: 120 file(s)
  all.1101: 7 file(s)
  all.1102: 119 file(s)
Unmounting /disk2...
lilienthal:/scratch#
&lt;/pre&gt;</description>
			<pubDate>Tue, 01 Mar 2011 22:56:53 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/backup2l/</guid>
		</item>
		
		<item>
			<title>Jquery Simple Continuous Hover</title>
			<link>http://www.web2works.co.uk/blog2works/jquery-simple-continuous-hover/</link>
			<description>&lt;p&gt;This is a example of a simple few lines of jQuery magic to produce a contious action.&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;var hoverInterval;

function doStuff() {
    // Set button's background to a random color
    $(&quot;#button&quot;).css(&quot;background&quot;, &quot;#&quot; + Math.floor(Math.random() * 16777215).toString(16));
}

$(function() {
    $(&quot;#button&quot;).hover(
        function() {
            // call doStuff every 100 milliseconds
            hoverInterval = setInterval(doStuff, 100);
        },
        function() {
            // stop calling doStuff
            clearInterval(hoverInterval);
        }
    );
})&lt;/pre&gt;</description>
			<pubDate>Mon, 28 Feb 2011 17:14:30 +0000</pubDate>
			
			
			<guid>http://www.web2works.co.uk/blog2works/jquery-simple-continuous-hover/</guid>
		</item>
		

	</channel>
</rss>