<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Craig Russell Web n That &#187; Internet</title>
	<atom:link href="http://www.craig-russell.co.uk/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.craig-russell.co.uk</link>
	<description>Web developement, identity management, federated access, web tech, geekery and the odd bit of paper folding</description>
	<lastBuildDate>Fri, 27 Jan 2012 21:57:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTML5 Reference: Free Kindle Book</title>
		<link>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/</link>
		<comments>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 17:40:49 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=1001</guid>
		<description><![CDATA[So, I got a Kindle for Xmas. It is awesome. Pretty much the first thing I did with it is start hunting for free web development ebooks. I was quite surprised to find that there wasn&#8217;t a free tag reference for HTML5. So I made one. It&#8217;s not in the Amazon store, but you can&#8230;]]></description>
			<content:encoded><![CDATA[<p>So, I got a Kindle for Xmas. It is awesome.</p>
<p>Pretty much the first thing I did with it is start hunting for free web development ebooks. I was quite surprised to find that there wasn&#8217;t a free tag reference for HTML5.</p>
<p>So I made one.</p>
<p>It&#8217;s not in the Amazon store, but you can download and copy it to you Kindle over USB.</p>
<p><a href="http://www.craig-russell.co.uk/downloads/HTML5_Reference.mobi">Download HTML5 Reference here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Chrome Plugins for Safer Browsing</title>
		<link>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/</link>
		<comments>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 08:22:26 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=915</guid>
		<description><![CDATA[You&#8217;ve gotta take your security seriously when using the web. Your actions on-line are being tracked and monitored constantly by various companies. This might not bother you, but it bothers me. Here&#8217;s a few plugins for Google Chrome that give me a little more piece of mind when I&#8217;m online. AdBlock Blocks all (well most)&#8230;]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve gotta take your security seriously when using the web. Your actions on-line are being tracked and monitored constantly by various companies. This might not bother you, but it bothers me. Here&#8217;s a few plugins for Google Chrome that give me a little more piece of mind when I&#8217;m online.</p>
<h2><a href="https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom">AdBlock</a></h2>
<p>Blocks all (well most) ads on sites around the web. No-one likes ads, apart from the people pushing them, this plugin makes them go away.</p>
<h2><a href="https://chrome.google.com/webstore/detail/gofhjkjmkpinhpoiabjplobcaignabnl">Flash Block</a></h2>
<p>Blocks all those irritating flash animations from jumping straight down your eyeballs when all you want to do is read an article. It lets you choose which flash objects to enable with a click. You can also white-list sites, preventing flash from being blocked at all (YouTube is white-listed by default).</p>
<h2><a href="https://chrome.google.com/webstore/detail/hhnjdplhmcnkiecampfdgfjilccfpfoe">Keep My Opt-Outs</a></h2>
<p>A plugin provided by Google to stop Google from using your browser habits to send targeted ads. Needless to say, they don&#8217;t market this very widely, but it is there.</p>
<h2><a href="https://chrome.google.com/webstore/detail/mlomiejdfkolichcflejclcbmpeaniij">Ghostery</a></h2>
<p>Ghostery aims to block those nasty tracking scripts from running in your browser. It doesn&#8217;t promise to block everything, and requires a little configuration, but something is better than nothing.</p>
<h2><a href="https://chrome.google.com/webstore/detail/flcpelgcagfhfoegekianiofphddckof">KB SSL Enforcer</a></h2>
<p>This plugin checks every site you visit for SSL support, if it does it forces you to use it. SSL ensures that the information sent over the internet can only be read by the site you&#8217;re visiting and no-one else along the way.</p>
<h2><a href="https://chrome.google.com/webstore/detail/lcncmkcnkcdbbanbjakcencbaoegdjlp">Google SSL Web Search</a></h2>
<p>Adds a secure version of Google search to your search engines list. You should set Google SSL as your default search engine.</p>
<p>There&#8217;s certainly more that you could do to <a href="https://encrypted.google.com/search?sourceid=chrome&#038;ie=UTF-8&#038;q=safer+browsing+habits">improve your safety while on-line</a>, but adding these plug-ins to your browser is a good start.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Password Policy</title>
		<link>http://www.craig-russell.co.uk/php-password-policy/</link>
		<comments>http://www.craig-russell.co.uk/php-password-policy/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 18:00:51 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=831</guid>
		<description><![CDATA[A password policy lets you put restrictions on the format of password allowed in your application. A good password policy forces user to use secure passwords. PHP Password Policy makes it easy to implement a password format policy on your application. It includes functions to return password validation errors and a decription of the defined&#8230;]]></description>
			<content:encoded><![CDATA[<p>A password policy lets you put restrictions on the format of password allowed in your application. A good password policy forces user to use secure passwords.</p>
<blockquote><p>PHP Password Policy makes it easy to implement a password format policy on your application. It includes functions to return password validation errors and a decription of the defined policies to be displayed to your users.</p></blockquote>
<p>PHP Password Policy is straight forward to implement, and can fit right in to your existing password setting procedure.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Include the library</span>
<span style="color: #b1b100;">require_once</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'password-policy.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Create the Password Policy object</span>
<span style="color: #000088;">$policy</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PasswordPolicy<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Define your policy rules</span>
<span style="color: #000088;">$policy</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">min_length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$policy</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">max_length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">64</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Validate a password</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$policy</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">validate</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Password OK!&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>You can get hold of <a href="http://craig552uk.github.com/password-policy/">PHP Password Policy Here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/php-password-policy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Trust IE9&#8242;s Document Modes</title>
		<link>http://www.craig-russell.co.uk/dont-trust-ie9s-document-modes/</link>
		<comments>http://www.craig-russell.co.uk/dont-trust-ie9s-document-modes/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 21:01:12 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Comment]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=773</guid>
		<description><![CDATA[Internet Explorer 9 allows you to emulate the behaviour of IE8 and IE7 by switching the Browser Mode and Document Modes. In brief, Browser Mode tells IE9 how to act like older browsers, Document Mode tells it how to render the page. Confusing? Yes. But don&#8217;t bother trying to figure out the difference because you&#8230;]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer 9 allows you to emulate the behaviour of IE8 and IE7 by switching the <a href="http://blogs.msdn.com/b/ie/archive/2010/10/19/testing-sites-with-browser-mode-vs-doc-mode.aspx">Browser Mode and Document Modes</a>. In brief, Browser Mode tells IE9 how to act like older browsers, Document Mode tells it how to render the page. Confusing? Yes. But don&#8217;t bother trying to figure out the difference because you won&#8217;t be using it to test your sites. Here&#8217;s why.</p>
<blockquote><p>&#8220;IE9’s emulations of older versions of IE are not the same as running the old version. The code is different. The emulations are very close but not exactly the same.&#8221; <a href="http://blogs.msdn.com/b/ie/archive/2011/02/04/testing-multiple-versions-of-ie-on-one-pc.aspx#10125034">[ref]</a></p></blockquote>
<p>That&#8217;s from <a href="http://blogs.msdn.com/b/ie/archive/2011/02/04/testing-multiple-versions-of-ie-on-one-pc.aspx#10125034">Ted Johnson</a>, a MS Engineer.</p>
<p>So adding IE9 to your browser testing suite won&#8217;t save you the trouble of having to run IE7 and IE8 too. And you&#8217;ll never waste your time changing &#8220;The Modes&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/dont-trust-ie9s-document-modes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bulk Minify Shell Script</title>
		<link>http://www.craig-russell.co.uk/bulk-minify-shell-script/</link>
		<comments>http://www.craig-russell.co.uk/bulk-minify-shell-script/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 12:03:16 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=693</guid>
		<description><![CDATA[The YUI Compressor is a bad ass little tool for making CSS and JS files as tiny as possible for faster page loading. I&#8217;ve written a little shell script to bulk minify CSS and JS files. The script will minify any file in your css and js folders that do not already have a .min.css&#8230;]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> is a bad ass little tool for making CSS and JS files as tiny as possible for faster page loading. I&#8217;ve written a little shell script to bulk minify CSS and JS files.</p>
<p>The script will minify any file in your css and js folders that do not already have a .min.css or .min.js extension. Style sheets are minified in to a single file where as Java Scripts are minified in to individual files. The minified files are created in the same folders as the original files.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">CSS</span>=<span style="color: #ff0000;">'css'</span>
<span style="color: #007800;">JS</span>=<span style="color: #ff0000;">'js'</span>
<span style="color: #007800;">FILELIST</span>=<span style="color: #ff0000;">&quot;minify.$$.tmp&quot;</span>
<span style="color: #007800;">COMPORESSOR</span>=<span style="color: #ff0000;">&quot;yuicompressor-2.4.2.jar&quot;</span>
<span style="color: #007800;">MINCSS</span>=<span style="color: #ff0000;">&quot;css/styles.min.css&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Minify CSS to single file</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">''</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$MINCSS</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #007800;">$CSS</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-v</span> min <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$FILELIST</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> LINE
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #007800;">OLD</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$CSS</span>/<span style="color: #007800;">$LINE</span>&quot;</span>    
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$OLD</span> -&gt; <span style="color: #007800;">$MINCSS</span>&quot;</span>
    java <span style="color: #660033;">-jar</span> yuicompressor-2.4.2.jar <span style="color: #007800;">$OLD</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$MINCSS</span>    
<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #007800;">$FILELIST</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Minify JS to multiple files</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #007800;">$JS</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-v</span> min <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$FILELIST</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> LINE
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #007800;">OLD</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$JS</span>/<span style="color: #007800;">$LINE</span>&quot;</span>
    <span style="color: #007800;">NEW</span>=<span style="color: #000000; font-weight: bold;">`</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$JS</span>/<span style="color: #007800;">$LINE</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/.js/.min.js/g'</span><span style="color: #000000; font-weight: bold;">`</span>    
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$OLD</span> -&gt; <span style="color: #007800;">$NEW</span>&quot;</span>
    java <span style="color: #660033;">-jar</span> yuicompressor-2.4.2.jar <span style="color: #007800;">$OLD</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$NEW</span>    
<span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #007800;">$FILELIST</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$FILELIST</span></pre></td></tr></table></div>

<p>The parameters at the top of the script configure the file and folder paths. CSS ans JS are to folders containing your style sheets and Java Script files. FILELIST is the location of a temporary file. COMPRESSOR is the YUI Compressor program. MINCSS is the single output CSS file.</p>
<p>The minification processes for CSS and JS are separated to illustrate the different approaches. I chose to minify CSS to a single file to there can be just one request for styles from the browser. I decided not to do the same for the Java Scripts because they can be loaded asynchronously by a utility like <a href="http://headjs.com/">Head.js</a>.</p>
<p>As always, comments, criticisms etc. greatly appreciated.</p>
<p><strong>EDIT</strong> Feb 8th<br />
There is a <a href="http://yuilibrary.com/projects/yuicompressor/ticket/2527991">bug</a> in the YUI Compressor which causes it to invalidate media queries. this will be fixed in version 2.4.3, but for now a bit of sed magic on line 14 fixes it.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">java <span style="color: #660033;">-jar</span> yuicompressor-2.4.2.jar <span style="color: #007800;">$OLD</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/and/and /g'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$MINCSS</span></pre></div></div>

<p>Also, if you want style sheets to be minified and added to the styles.min.css file in a particular order (which you probably do), name them numerically like so.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">00-meyer-reset.css
01-global-styles.css
desktop-styles.css
mobile-styles.css</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/bulk-minify-shell-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Refresh Manifest Cache Without .htaccess</title>
		<link>http://www.craig-russell.co.uk/refresh-manifest-cache-without-htaccess/</link>
		<comments>http://www.craig-russell.co.uk/refresh-manifest-cache-without-htaccess/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 14:50:38 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WebApps]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=684</guid>
		<description><![CDATA[Manifest caching is one of the lovely new features of HTML5. It allows you to define a list of files to be cached for off-line access (among other nice features). One of the points to consider when making changes to cached files, is that the browser won&#8217;t know to download the modified file without being&#8230;]]></description>
			<content:encoded><![CDATA[<p>Manifest caching is one of the <a href="http://www.w3.org/TR/offline-webapps/">lovely new features of HTML5</a>. It allows you to define a list of files to be cached for off-line access (among other nice features).</p>
<p>One of the points to consider when making changes to cached files, is that the browser won&#8217;t know to download the modified file without being prompted to re-fetch the manifest file.</p>
<p><a href="http://html5doctor.com/go-offline-with-application-cache/#trigger-refresh">A common workaround</a> is to make some change to the manifest file to force an update, typically using a version number. This works fine in most instances, but Firefox stubbornly ignores this. The usual workaround for Firefox is to set the manifest file to expire by using the following rule in the .htaccess file.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>IfModule mod_expires.c<span style="color: #000000; font-weight: bold;">&gt;</span>
ExpiresActive On
ExpiresByType text<span style="color: #000000; font-weight: bold;">/</span>cache-manifest <span style="color: #ff0000;">&quot;access plus 0 seconds&quot;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>IfModule<span style="color: #000000; font-weight: bold;">&gt;</span></pre></td></tr></table></div>

<p>While this works, it&#8217;s not much good if your&#8217;re not using Apache, or if your host has blocked .htaccess usage.</p>
<p>However, you can achieve the same effect by setting the HTTP headers in PHP. Put the following lines in to top of your manifest file, and change the extension to <code>.php</code>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-type: text/cache-manifest&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Cache-Control: no-cache, must-revalidate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Expires: &quot;</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span>DATE_RFC1123<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>The first line sets the content type to text/cache-manifest, this is a requirement for manifest caching to function. The second tells the browser not to cache the file. And in case the browser ignores that, the third line expires the file immediately.</p>
<p>Now the browser will keep the manifest cache up-to-date, but still cache the files you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/refresh-manifest-cache-without-htaccess/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rapportive and a New GitHub Project</title>
		<link>http://www.craig-russell.co.uk/rapporative-and-a-new-github-project/</link>
		<comments>http://www.craig-russell.co.uk/rapporative-and-a-new-github-project/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:00:23 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WebApps]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=670</guid>
		<description><![CDATA[Thanks to this post on Think Vitamin, I&#8217;ve today discovered Rapportive. Rapportive is a browser plugin for Firefox, Safari, Chrome and Mailplane, which displays social network information for your mail contacts. That in itself is alright, but the juicy part is the API. You can write your own &#8220;raplets&#8221; to pull contact data from any&#8230;]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://thinkvitamin.com/web-apps/4-ways-to-improve-your-customer-service/">this post on Think Vitamin</a>, I&#8217;ve today discovered <a href="http://rapportive.com/">Rapportive</a>. Rapportive is a browser plugin for Firefox, Safari, Chrome and Mailplane, which displays social network information for your mail contacts. That in itself is alright, but the juicy part is the API. You can write your own &#8220;raplets&#8221; to pull contact data from any data source and display it in GMail. Rapplets are intended to be self hosted, so you&#8217;ll need access to a web server to roll you own.</p>
<p>I&#8217;ve written a raplet which displays data from an LDAP directory next to a message thread in GMail. The records are matched against the email address (mail attribute). The data that is returned is easily configurable at the top of the script. </p>
<p>You can get <a href="https://github.com/craig552uk/LDAP-Raplet">hold of the file on gitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/rapporative-and-a-new-github-project/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tumblr Style Flipper in CSS3</title>
		<link>http://www.craig-russell.co.uk/tumblr-style-flipper-in-css3/</link>
		<comments>http://www.craig-russell.co.uk/tumblr-style-flipper-in-css3/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 16:41:15 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=648</guid>
		<description><![CDATA[Tumblr broke today (and still is at the time of writing). This is sad. But at least they have a mighty handsome error message (I&#8217;m not the only one to notice). Pretty aint it? But wait, it uses images &#8211; bleugh! Us web developers don&#8217;t need no Photoshop, we&#8217;ve got CSS3! Here&#8217;s my image-less version&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/#!/tumblr/status/11570891053862912">Tumblr broke today</a> (and still is at the time of writing). This is sad. But at least they have a mighty handsome error message (<a href="http://thinkvitamin.com/asides/whats-up-with-tumblr/">I&#8217;m not the only one to notice</a>).</p>
<p><a href="http://www.craig-russell.co.uk/wp-content/uploads/2010/12/tumblr-flip.png"><img class="aligncenter size-medium wp-image-649" title="tumblr-flip" src="http://www.craig-russell.co.uk/wp-content/uploads/2010/12/tumblr-flip-300x107.png" alt="" width="300" height="107" /></a></p>
<p>Pretty aint it? But wait, it uses images &#8211; bleugh! Us web developers don&#8217;t need no Photoshop, we&#8217;ve got CSS3!</p>
<p>Here&#8217;s my image-less version (in Firefox 3.6).</p>
<p><a href="http://www.craig-russell.co.uk/wp-content/uploads/2010/12/my-flip.png"><img class="aligncenter size-medium wp-image-650" title="my-flip" src="http://www.craig-russell.co.uk/wp-content/uploads/2010/12/my-flip-300x107.png" alt="" width="300" height="107" /></a>The live demo is <a href="http://www.craig-russell.co.uk/examples/flip.html">here</a>. You&#8217;re smart enough to figure it out from the source.<span id="more-648"></span></p>
<p>Comments and criticisms are most gratefully received below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/tumblr-style-flipper-in-css3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How I Manage My Social Media</title>
		<link>http://www.craig-russell.co.uk/how-i-manage-my-social-media/</link>
		<comments>http://www.craig-russell.co.uk/how-i-manage-my-social-media/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 10:32:05 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[WebApps]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=589</guid>
		<description><![CDATA[The Internet is awesome, no doubt, but it can be a challenge to keep track of all the information that&#8217;s flapping about these days. I&#8217;ve tried various techniques and technologies to help me manage the various streams of information that I like to keep an eye on. I thought I&#8217;d share how I go about&#8230;]]></description>
			<content:encoded><![CDATA[<p>The Internet is awesome, no doubt, but it can be a challenge to keep track of all the information that&#8217;s flapping about these days. I&#8217;ve tried various techniques and technologies to help me manage the various streams of information that I like to keep an eye on. I thought I&#8217;d share how I go about it.<span id="more-589"></span></p>
<h3>Google Reader</h3>
<p>I keep an eye on a lot of blogs, mostly design/science/art focussed. Typically I&#8217;ve got about 100 feeds in my feed reader, but I&#8217;ve had a bit of a purge recently, and chopped it down to about 30. I use <a href="http://www.google.com/reader/">Google Reader</a> to keep track of them all, sorted in to various tagged groups (Graphics, Science, Paper Craft, Comics etc..).</p>
<p>I tend to read through one group at a time, toggling the Expanded or List views depending on which group I&#8217;m reading. Expanded view is best for the graphics feeds making it easy to quickly scan through the images, picking out interesting pics. I prefer List view for text articles where I tend just to scan the headlines.</p>
<h3>Tumblr</h3>
<p>For a while I used to keep a photo album as a scrapbook of various images from magazines and what-not. As I tend to browse more articles online than off these days the photo album has become a bit redundant. For a while I kept printing off images and sticking them in, but this process was too cumbersome to keep up with.</p>
<p>Now I use <a href="http://www.tumblr.com/">Tumblr</a> as my scrapbook, combined with a Firefox plugin and an Android app, I can quickly and easily add inspiring images to my collection.</p>
<p>In Firefox I use the <a href="https://addons.mozilla.org/en-US/firefox/addon/5867/">Tumblr Post plugin</a>. With this I simply right click an image and select &#8216;Post photo to my Tumblelog&#8217;. <span style="text-decoration: line-through;">I copy and paste the page link (for reference) in to the comment field and hit upload</span>.  <strong>Update:</strong> There&#8217;s actually a plugin setting that sets the image link to the page URL, no copy and paste needed! Easy as.</p>
<p>On my mobile phone (<a href="http://www.htc.com/www/product/hero/overview.html">HTC Hero</a> running <a href="http://www.android.com">Android</a>) I have the <a href="http://asukatumblr.tumblr.com/">Asuka Tumblr app</a>, which allows me to send any image on my phone straight up to Tumblr. I can use this to take photos of things I see and stick them straight in to my scrapbook.</p>
<h3>Twitter</h3>
<p>I love Twitter. It&#8217;s awesome. However, managing followees and keeping an eye on conversations takes a bit of work. <a href="http://support.twitter.com/articles/76460-how-to-use-twitter-lists">Lists</a> and <a href="http://support.twitter.com/groups/31-twitter-basics/topics/110-search/articles/96646-how-to-save-searches">Saved Searches</a> are the answer. I&#8217;ve got a <a href="http://twitter.com/craig552uk/lists">number of lists</a> grouping the different people I follow, and I <a href="http://dictionary.reference.com/browse/take+a+gander+at">take a gander at</a> each on a semi-regular basis.</p>
<p>I&#8217;ve also set a few custom searches for words and phrases I&#8217;m interested in. Twitter search accepts logical search constructs, so I can search for <code>"paper engineer" AND "paper engineering"</code> in one go. This is a good way to find other people talking about things I like to talk about.</p>
<p>Incidentally, I&#8217;ve tried, but not really got on with any of these <a href="http://en.wikipedia.org/wiki/Social_network_aggregation">social network aggregation</a> programs, I&#8217;m much happier with the good old Twitter site itself.</p>
<p><a href="http://www.twitter.com/craig552uk">Follow me on Twitter</a><br />
<a href="http://craig552uk.tumblr.com">Check out my Tumblr Scrapbook</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/how-i-manage-my-social-media/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

