<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Bitvolution Web Development</title>
	
	<link>http://www.bitvolution.com</link>
	<description>We make web-sites. Do you want one?</description>
	<lastBuildDate>Wed, 04 Aug 2010 07:05:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bitvolution" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="bitvolution" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Session sharing in PHP – The easy way</title>
		<link>http://www.bitvolution.com/session-sharing-in-php-the-easy-way</link>
		<comments>http://www.bitvolution.com/session-sharing-in-php-the-easy-way#comments</comments>
		<pubDate>Mon, 02 Aug 2010 07:49:58 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=881</guid>
		<description><![CDATA[I used to think that the hardest part of scaling a website from one webserver to two webservers was sharing the sessions between the machines to keep the users logged in whichever machine they were served by. I was pleasantly surprized that it is possible to accomplish sharing sessions between two servers by changing only [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net/"><img src="http://www.bitvolution.com/wp-content/uploads/2010/08/logoPHP.png" alt="" title="PHP Logo " width="100" height="53" class="alignleft size-full wp-image-896" /></a></p>
<p>I used to think that the hardest part of scaling a website from one webserver to two webservers was sharing the sessions between the machines to keep the users logged in whichever machine they were served by. I was pleasantly surprized that it is possible to accomplish sharing sessions between two servers by changing only 5 lines in the <em>php.ini</em> file (the <code>session.save_handler</code> and <code>session.save_path</code>).</p>
<p>Here is a solution for <a href="http://www.redhat.com/rhel/">RHEL 5.5</a>:</p>
<p><span id="more-881"></span></p>
<ol>
<li>Install memcached:
<ul>
<li><em>libmemcached</em> is unfortunately not part of the RHEL standard packages so we have to install a third party repository first following instructions at <a href="http://blog.famillecollet.com/pages/Config-en">http://blog.famillecollet.com/pages/Config-en</a>.</li>
<li>Afterward installing the 3rd party repo, install <em>libmemcached</em>: <span class="iconTerminal">sudo yum &#8211;enablerepo=epel &#8211;enablerepo=remi update memcached &#038;&#038; sudo yum &#8211;enablerepo=epel &#8211;enablerepo=remi install libmemcached libmemcached-devel</span></li>
</li>
</ul>
<li>Install the PHP memcache client: <span class="iconTerminal">sudo pecl install memcache-3.0.3</span></li>
<li>Change in the php.ini file of both servers (e.g. <em>/etc/php.ini</em>) so that the PHP memcache client is used instead of session files:<br />
<code>session.save_handler = files</s><br />
session.save_handler = memcache</code>
</li>
<li>Add in the PHP memcache.ini file of both servers (e.g. <em>/etc/php.d/memcache.ini</em>) so that the PHP memcache client is configured to share sessions with redundancy and failover support:<br />
<code>memcache.hash_strategy = consistent<br />
memcache.allow_failover = 1<br />
memcache.session_redundancy=2<br />
session.save_path="tcp://192.168.0.1:11211, tcp://192.168.0.2:11211"</code>
</li>
</ol>
<p>This approach shares sessions between both machines using RAM as storage. The PHP memcache client cleverly writes the session data to both machines so that if one machine fails all users will still be logged in when they are served by the remaining machine.</p>
<p>My exploration of this subject is documented on serverfault: <a href="http://serverfault.com/questions/164350/can-a-pool-of-memcache-daemons-be-used-to-share-sessions-more-efficiently">can-a-pool-of-memcache-daemons-be-used-to-share-sessions-more-efficiently</a>. My conclusion is that this method of session sharing is not the best approach but it is the simplest to set up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/session-sharing-in-php-the-easy-way/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress spelling auto-correction now fixed</title>
		<link>http://www.bitvolution.com/wordpress-spelling-auto-correction-now-fixed</link>
		<comments>http://www.bitvolution.com/wordpress-spelling-auto-correction-now-fixed#comments</comments>
		<pubDate>Mon, 02 Aug 2010 07:05:27 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=870</guid>
		<description><![CDATA[In WordPress 3.0, my WordPress logo image (on the left) broke. So I opened a bug and six weeks and 100 bug comments later, I have upgraded to 3.01 and it is working again. Thanks guys! The reason why the logo image was broken was quite interesting(?)&#8230; In v3.0 WordPress automatically started auto-correcting Wordpress to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bitvolution.com/wp-content/uploads/2009/12/WordpressLogo_blue-m.png" alt="Wordpress Logo" title="Wordpress Logo" width="100" height="100" class="alignleft size-full wp-image-611" style="padding: 20px" /></p>
<p>In WordPress 3.0, my WordPress logo image (<em>on the left</em>) broke. So I <a href="http://core.trac.wordpress.org/ticket/13971">opened a bug</a> and six weeks and 100 bug comments later, I have upgraded to 3.01 and it is working again. Thanks guys!</p>
<p>The reason why the logo image was broken was quite interesting(?)&#8230; In v3.0 WordPress automatically started auto-correcting Word<strong>p</strong>ress to Word<strong>P</strong>ress (i.e. Word-lowercase-p-ress to Word-uppercase-P-ress) and because my image file name was called &#8220;Word<strong>p</strong>ressLogo_blue-m.png&#8221;, the auto-correction was breaking the link. Auto-correction shouldn&#8217;t cause links to break and it seems that v3.01 fixes it.</p>
<p>The filter function that does this auto-correction is called &#8220;<em>capital_P_dangit</em>&#8221; &#8211; The WordPress guys are obviously pretty frustrated by this spelling mistake!</p>
<p><strong>Old filter (v3.0):</strong></p>
<pre class="brush: php;">
function capital_P_dangit( $text ) {
       return str_replace( 'Wordpress', 'WordPress', $text );
}
</pre>
<p><strong>New filter (v3.01):</strong></p>
<pre class="brush: php;">
function capital_P_dangit( $text ) {
        // Simple replacement for titles
        if ( 'the_title' === current_filter() )
                return str_replace( 'Wordpress', 'WordPress', $text );
        // Still here? Use the more judicious replacement
        static $dblq = false;
        if ( false === $dblq )
                $dblq = _x('&amp;#8220;', 'opening curly quote');
        return str_replace(
                array( ' WordPress', '&amp;#8216;Wordpress', $dblq . 'Wordpress', '&gt;Wordpress', '(WordPress' ),
                array( ' WordPress', '&amp;#8216;WordPress', $dblq . 'WordPress', '&gt;WordPress', '(WordPress' ),
        $text );
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/wordpress-spelling-auto-correction-now-fixed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress image gallery plugin</title>
		<link>http://www.bitvolution.com/wordpress-image-gallery-plugin</link>
		<comments>http://www.bitvolution.com/wordpress-image-gallery-plugin#comments</comments>
		<pubDate>Fri, 16 Apr 2010 11:42:52 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=819</guid>
		<description><![CDATA[When I was building the property gallery for greekislandpropertyfinders I wanted to use a fancy javascript image gallery like Galleria, however I came across a problem with Galleria in that it couldn&#8217;t display more than one gallery on any page. It&#8217;s open-source so I used the source code to help write my own version and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bitvolution.com/wp-content/uploads/2009/12/WordpressLogo_blue-m.png" alt="Wordpress Logo" title="Wordpress Logo" width="100" height="100" class="alignleft size-full wp-image-611" style="padding: 20px" /></p>
<p>When I was building the property gallery for <a href="http://www.greekislandpropertyfinders.co.uk/what-we-are-finding">greekislandpropertyfinders</a> I wanted to use a fancy javascript image gallery like <a href="http://devkick.com/lab/galleria/">Galleria</a>, however I came across a problem with <em>Galleria</em> in that it couldn&#8217;t display more than one gallery on any page. It&#8217;s open-source so I used the source code to help write my own version and turned it into a WordPress plugin with the features I needed.</p>
<p>The plugin isn&#8217;t all that generalised, so I&#8217;m not sure it&#8217;ll be useful to many people but I think it&#8217;s a tool worth sharing.</p>
<p>Plugin features:</p>
<ul>
<li>This plugin doesn&#8217;t change the WordPress media gallery admin interface &#8211; galleries are created and inserted into pages/posts as normal (i.e. using the media upload GUI + the <code><br />
&#91;gallery]</code> shortcode). WordPress authors won&#8217;t need to change or learn anything new.</li>
<li>The plugin makes efficient use of WordPress media (no front-end image resizing via CSS!) which means it doesn&#8217;t matter if one of your authors uploads a load of 3MB images to a gallery &#8211; it&#8217;ll still run fast.</li>
<li>The plugin doesn&#8217;t pre-download images that aren&#8217;t needed &#8211; it displays a loading spinner image when the user is waiting for a image on load.</li>
<li>Should be easy to style the gallery in your own way &#8211; uses CSS classes and IDs.</li>
<li>The user can click on the main image to cycle through the gallery.</li>
<li>Uses jQuery for cross-browser hover fade effects.</li>
<li>Small JS footprint: 2854 bytes.</li>
<li>Outputs valid XHTML (unlike the default WordPress gallery!).</li>
</ul>
<p>Screenshot of the plugin:<br />
<div id="attachment_828" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bitvolution.com/wp-content/uploads/2010/04/screenshot-1.png"><img src="http://www.bitvolution.com/wp-content/uploads/2010/04/screenshot-1-300x139.png" alt="Screenshot of Bitvolution-image-galleria plugin" title="Screenshot of Bitvolution-image-galleria plugin" width="300" height="139" class="size-medium wp-image-828" /></a><p class="wp-caption-text">Click to enlarge</p></div></p>
<p>Demo of plugin: <a href="http://www.greekislandpropertyfinders.co.uk/what-we-are-finding">www.greekislandpropertyfinders.co.uk/what-we-are-finding</a>.</p>
<p>Download the plugin from the <a href='http://wordpress.org/extend/plugins/bitvolution-image-galleria/'>WordPress.org plugin directory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/wordpress-image-gallery-plugin/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Batch optimise Images with a single command</title>
		<link>http://www.bitvolution.com/batch-optimise-images-with-a-single-command</link>
		<comments>http://www.bitvolution.com/batch-optimise-images-with-a-single-command#comments</comments>
		<pubDate>Thu, 04 Mar 2010 17:01:53 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=796</guid>
		<description><![CDATA[I find the Page Speed tool from Google extremely helpful for optimising my websites. I have a tip which can save time if your website is failing the &#8220;Optimize Images&#8221; test. Using the in-built Smush.it is one option but if most of your images are jpegs, you can achieve the same result and save time [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bitvolution.com/wp-content/uploads/2010/03/pageSpeedScreenshot.png"><img src="http://www.bitvolution.com/wp-content/uploads/2010/03/pageSpeedScreenshot-300x128.png" alt="Screenshot of Page Speed in Firebug" title="Screenshot of Page Speed in Firebug" width="300" height="128" class="alignleft size-medium wp-image-797" /></a><br />
I find the <a href="http://code.google.com/speed/page-speed/">Page Speed</a> tool from Google extremely helpful for optimising my websites. I have a tip which can save time if your website is failing the &#8220;<em>Optimize Images</em>&#8221; test. Using the in-built <a href="http://developer.yahoo.com/yslow/smushit/">Smush.it</a> is one option but if most of your images are jpegs, you can achieve the same result and save time using a command line tool called <strong>jpegtran</strong> with the <code>-optimise</code> parameter to do lossless compression and the <code>-copy none</code> parameter to strip out image meta-data.</p>
<p><em>Disclaimer: As with any image processing always keep a copy of the original images.</em></p>
<p>To install <strong>jpegtran</strong> in Ubuntu, do:<br /><span class="iconTerminal">sudo apt-get install libjpeg-progs</span></p>
<ul class="tickList">
<li>To optimise a single jpeg image:<br /><span class="iconTerminal">jpegtran -copy none -optimise -outfile image.jpg image.jpg</span></li>
<li>To optimise all jpegs in the current directory:<br /><span class="iconTerminal">for img in `ls *.jpg`; do jpegtran -copy none -optimise -outfile $img $img; done</span></li>
<li>To optimise all jpegs in the current directory and all child directories:<br /><span class="iconTerminal">find . -name &#8220;*.jpg&#8221; -print0 | xargs -0 -I filename jpegtran -copy none -optimise -outfile filename filename</span></li>
</ul>
<p>If you need to optimise various image formats, there is a PHP CLI tool called <a href="http://github.com/ecentinela/smusher">smusher</a> which uses <em>Smush.it</em> and can work recursively on directories. Might be worth a look. It would be nice if <em>Smush.it</em> had a API &#8211; their FAQ <a href="http://developer.yahoo.com/yslow/smushit/faq.html#faq_api">mentions they are working on it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/batch-optimise-images-with-a-single-command/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>greekislandpropertyfinders.co.uk</title>
		<link>http://www.bitvolution.com/greekislandpropertyfinders-co-uk</link>
		<comments>http://www.bitvolution.com/greekislandpropertyfinders-co-uk#comments</comments>
		<pubDate>Fri, 19 Feb 2010 11:00:41 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Client Work]]></category>
		<category><![CDATA[GIPF]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=783</guid>
		<description><![CDATA[We have just finished and published greekislandpropertyfinders.co.uk which is a modified clone of http://www.heidijoycegardens.com. Technical details of site: The site is written in PHP using WordPress as a development framework. Uses the 1KB CSS grid framework. Uses Jquery including the anything slider and Galleria. The site has a newsletter sign-up form written as a WordPress [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bitvolution.com/wp-content/uploads/2010/02/Greek-Island-Property-Finders_1266706587041.png"><img src="http://www.bitvolution.com/wp-content/uploads/2010/02/Greek-Island-Property-Finders_1266706587041-300x225.png" alt="Greek Island Property Finders Screenshot" title="Greek Island Property Finders" width="300" height="225" class="alignleft size-medium wp-image-782 bordered" /></a></p>
<p>We have just finished and published <a href="http://www.greekislandpropertyfinders.co.uk/">greekislandpropertyfinders.co.uk</a> which is a modified clone of  <a href="http://www.heidijoycegardens.com">http://www.heidijoycegardens.com</a>.</p>
<p>Technical details of site:</p>
<ul class="bulletsInside">
<li>The site is written in PHP using <a href="http://wordpress.org/">WordPress</a> as a development framework.</li>
<li>Uses the <a href="http://www.1kbgrid.com/">1KB CSS grid framework</a>.</li>
<li>Uses Jquery including the <a href="http://css-tricks.com/anythingslider-jquery-plugin/">anything slider</a> and <a href="http://devkick.com/lab/galleria/">Galleria</a>.</li>
<li>The site has a newsletter sign-up form written as a WordPress theme function.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/greekislandpropertyfinders-co-uk/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Tag Cloud – How to cap the font size</title>
		<link>http://www.bitvolution.com/wordpress-tag-cloud-how-to-cap-the-font-size</link>
		<comments>http://www.bitvolution.com/wordpress-tag-cloud-how-to-cap-the-font-size#comments</comments>
		<pubDate>Thu, 18 Feb 2010 13:01:51 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=734</guid>
		<description><![CDATA[On this WordPress theme, the sidebar is quite small (only 220px) and the default WordPress tag cloud widget was producing tags that were clipped in a ugly manner. By default, the WordPress tag cloud widget has a maximum font size of 22px so I was looking for a way to reduce it. Note: If you [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bitvolution.com/wp-content/uploads/2010/02/tag_too_big.png" alt="Screenshot of problem with too big tag" title="Demo of Tag too big" width="242" height="319" class="alignleft size-full wp-image-733 bordered" /></p>
<p>On this WordPress theme, the sidebar is quite small (only 220px) and the default WordPress tag cloud widget was producing tags that were clipped in a ugly manner. By default, the WordPress tag cloud widget has a maximum font size of 22px so I was looking for a way to reduce it.</p>
<p><em>Note:</em> If you are not a theme editor, you might find it easier to just install a suitable tag cloud plugin, e.g.<a href="http://wordpress.org/extend/plugins/configurable-tag-cloud-widget/"> Configurable Tag Cloud (CTC)</a>.</p>
<p>The WordPress tag cloud widget already allows you to specify various options including the largest font size, e.g. <code>&lt;?php wp_tag_cloud('largest=18'); ?&gt;</code> so we only need to create a new widget that overrides the default widget and then unregister the default widget so there aren&#8217;t two widgets with the same name in the &#8220;Available Widgets&#8221; dashboard page. We can register our own widget using <a href="http://codex.wordpress.org/Function_Reference/register_sidebar_widget">register_sidebar_widget</a> and we can unregister the default tag cloud widget using <code>unregister_widget('WP_Widget_Tag_Cloud');</code>.</p>
<p>This is the code you need &#8211; put it in the <em>functions.php</em> file in your WordPress theme folder:</p>
<pre class="brush: php;">
add_action(&quot;widgets_init&quot;, array('Tag_cloud_withLimitedFontSize', 'register'));

/** Widget - Override the default WordPress tag cloud BUT cap the largest font size to 18 (instead of 22)\
 because at 22 some tags don't fit in the sidebar. */
class Tag_cloud_withLimitedFontSize
{
  function widget($args){
    echo $args['before_widget'];
    echo $args['before_title'] . 'Tags' . $args['after_title'];
    echo wp_tag_cloud('largest=18');
    echo $args['after_widget'];
  }

  function register()
  {
    register_sidebar_widget('Tag Cloud', array('Tag_cloud_withLimitedFontSize', 'widget'));
    unregister_widget('WP_Widget_Tag_Cloud');
  }
}
</pre>
<p>If there&#8217;s a better way to do this, please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/wordpress-tag-cloud-how-to-cap-the-font-size/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3.6 opacity crash in Linux</title>
		<link>http://www.bitvolution.com/firefox-3-6-opacity-crash-in-linux</link>
		<comments>http://www.bitvolution.com/firefox-3-6-opacity-crash-in-linux#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:10:43 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[WebDevelopment]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=691</guid>
		<description><![CDATA[A website that I was working on suddenly started crashing Firefox 3.6 on my PC (Ubuntu 9.10, 64bit). I&#8217;m talking a full out hang with 100% CPU usage and a frozen mouse and keyboard and the only way to recover is to remote login from a 2nd PC and kill the Firefox process. I found [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bitvolution.com/wp-content/uploads/2010/02/bugAsAChip.jpg" alt="Microchip as a bug" title="Code Bug" width="216" height="147" class="alignleft size-full wp-image-697" /></p>
<p>A website that I was working on suddenly started crashing Firefox 3.6 on my PC (Ubuntu 9.10, 64bit). I&#8217;m talking a full out hang with 100% CPU usage and a frozen mouse and keyboard and the only way to recover is to remote login from a 2nd PC and kill the Firefox process. </p>
<p>I found the cause of the crash and it was a single line of recently added CSS code at the top of the websites stylesheet: <code>body { opacity: 0.9999; }</code></p>
<p>So, if you run a website, be careful of non-100% <em>opacity</em> when it affects many elements. I have hosted <a href="http://www.bitvolution.com/demo/firefox36opacitybugtest.html">a page that reproduces the issue</a> and found a bug that tracks the issue: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=279890">#279890</a>. This CSS is also a problem on Windows &#8211; it causes text to blur horribly in IE 7 in some situations.</p>
<p><em>What is that CSS for anyway?</em> Firefox 2.0 on Macs used to have a problem where text could dim or get bold or flicker when a animated effect that changed the opacity of an element was used. It was caused because the use of a <em>opacity filter</em> triggered the Gecko rendering engine to switch from the operating system’s method of anti-aliasing to its own internal method. Whenever opacity dropped below 100% the mode switched and resulted in a defect such as a flicker or blink. The fix was simple &#8211; all that was needed was to add <code>body { -moz-opacity: 0.9999; }</code> to the stylesheet because it would force Firefox to use a consistent text rendering method.</p>
<div style="font-family:Purisa,arial">Hack == Bug</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/firefox-3-6-opacity-crash-in-linux/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minimalist WordPress themes</title>
		<link>http://www.bitvolution.com/minimalist-wordpress-themes</link>
		<comments>http://www.bitvolution.com/minimalist-wordpress-themes#comments</comments>
		<pubDate>Sun, 24 Jan 2010 15:59:40 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[List]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=631</guid>
		<description><![CDATA[I was recently on the look out for a nice minimalist WordPress theme. This is the list I came up with: Cutline &#8211; http://cutline.tubetorial.com/ Hybrid &#8211; http://themehybrid.com/demo/hybrid/ Thematic &#8211; http://themeshaper.com/demo/thematic/ Simple Type &#8211; http://typetheme.spyrestudios.com/ Modern Clix &#8211; http://rodrigogalindez.com/themes/modern-clix/ Oulipo &#8211; http://labs.andreamignolo.com/oulipo/ Handgloves &#8211; http://handgloves.geenius.co.uk/ Tarski &#8211; http://tarskitheme.com/ Seven Five &#8211; http://www.press75.com/v4/the-seven-five-WordPress-theme/ Ulap &#8211; http://plus63.net/ulaptheme/ Satoshi [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently on the look out for a nice minimalist WordPress theme. This is the list I came up with:</p>
<p><img src="http://www.bitvolution.com/wp-content/uploads/2009/12/WordpressLogo_blue-m.png" alt="Wordpress Logo" title="Wordpress Logo" width="100" height="100" class="alignleft size-full wp-image-611" style="padding: 60px 10px" /></p>
<ul class="bulletsInside">
<li>Cutline &#8211; <a href="http://cutline.tubetorial.com/ ">http://cutline.tubetorial.com/</a></li>
<li>Hybrid &#8211; <a href="http://themehybrid.com/demo/hybrid/">http://themehybrid.com/demo/hybrid/</a></li>
<li>Thematic &#8211; <a href="http://themeshaper.com/demo/thematic/">http://themeshaper.com/demo/thematic/</a></li>
<li>Simple Type &#8211; <a href="http://typetheme.spyrestudios.com/">http://typetheme.spyrestudios.com/</a></li>
<li>Modern Clix &#8211; <a href="http://rodrigogalindez.com/themes/modern-clix/">http://rodrigogalindez.com/themes/modern-clix/</a></li>
<li>Oulipo &#8211; <a href="http://labs.andreamignolo.com/oulipo/">http://labs.andreamignolo.com/oulipo/</a></li>
<li>Handgloves &#8211; <a href="http://handgloves.geenius.co.uk/">http://handgloves.geenius.co.uk/</a></li>
<li>Tarski &#8211; <a href="http://tarskitheme.com/">http://tarskitheme.com/</a></li>
<li>Seven Five &#8211; <a href="http://www.press75.com/v4/the-seven-five-WordPress-theme//">http://www.press75.com/v4/the-seven-five-WordPress-theme/</a></li>
<li>Ulap &#8211; <a href="http://plus63.net/ulaptheme/">http://plus63.net/ulaptheme/</a></li>
<li>Satoshi &#8211; <a href="http://www.vooshthemes.com/WordPress-theme/satoshi-2/">http://www.vooshthemes.com/WordPress-theme/satoshi-2/</a></li>
<li>Neutra &#8211; <a href="http://www.artmov.com/blog/252/neutra-theme-for-WordPress/>http://www.artmov.com/blog/252/neutra-theme-for-WordPress//</a></li>
<li>Fifty Fifth Street &#8211; <a href="http://tammyhartdesigns.com/free-WordPress-themes/fifty-fifth-street/">http://tammyhartdesigns.com/free-WordPress-themes/fifty-fifth-street/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/minimalist-wordpress-themes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PeoplePerHour Economy</title>
		<link>http://www.bitvolution.com/peopleperhour-economy</link>
		<comments>http://www.bitvolution.com/peopleperhour-economy#comments</comments>
		<pubDate>Wed, 20 Jan 2010 08:00:29 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Client Work]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[PeoplePerHour]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=645</guid>
		<description><![CDATA[I’ve just finished a new webpage called PeoplePerHour Economy that was written about in the mainstream tech press (see bottom half of article): Technical details: The charts and graphs are implemented using the Google Charts API &#8211; a simple and extremely efficient method of producing charts. The charts (and chart data) are cached over a [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve just finished a new webpage called <a href="http://www.peopleperhour.com/pph_economy.php">PeoplePerHour Economy</a> that was written about in the <a href="http://eu.techcrunch.com/2010/02/17/index-ventures-invests-in-peopleperhour-as-business-flows-east-to-west/">mainstream tech press</a> (<em>see bottom half of article</em>):</p>
<p><a href="http://www.bitvolution.com/wp-content/uploads/2010/01/PPH_Marketplace.png"><img src="http://www.bitvolution.com/wp-content/uploads/2010/01/PPH_Marketplace-243x300.png" alt="Screenshot of Peopleperhour marketplace page" title="PPH Marketplace Page" width="243" height="300" class="aligncenter size-medium wp-image-646 bordered" /></a></p>
<p>Technical details:</p>
<ul>
<li>The charts and graphs are implemented using the <a href="http://code.google.com/apis/chart/">Google Charts API</a> &#8211; a simple and extremely efficient method of producing charts.</li>
<li>The charts (and chart data) are cached over a 24 hour period to take some load off the webserver. The caching is done by some simple PHP code &#8211; <a href="http://memcached.org/">memcached</a> seemed overkill.</li>
<li>The UK map is implemented using a 3rd-party image map with polygon co-ordinates specifying each county. The hover-over highlighting is done using a JQuery plugin called <a href="http://plugins.jquery.com/project/maphilight">mapHighlight</a>.</li>
<li>The &#8220;Job-o-meter&#8221; is implemented using a JQuery plugin called <a href="http://plugins.jquery.com/project/jOdometer">jOdometer</a> customised to format the number with commas and animate the digits with some <a href="http://plugins.jquery.com/project/Easing">easing</a>. I have made the customisations available via <a href="http://github.com/tomfotherby/jOdometer">a github fork</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/peopleperhour-economy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elastic WordPress Plugin</title>
		<link>http://www.bitvolution.com/elastic-wordpress-plugin</link>
		<comments>http://www.bitvolution.com/elastic-wordpress-plugin#comments</comments>
		<pubDate>Mon, 21 Dec 2009 08:10:25 +0000</pubDate>
		<dc:creator>Tom Fotherby</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.bitvolution.com/?p=610</guid>
		<description><![CDATA[Today, I found out about a WordPress plugin called Elastic (http://elastictheme.org/, download link) which is a WYSIWYG theme editor for WordPress. It looks like a very promising technology to make it easier to develop WordPress themes. I&#8217;m interested in re-useable modules so, if I develop something interesting for one client, I can re-use the same [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bitvolution.com/wp-content/uploads/2009/12/WordpressLogo_blue-m.png" alt="Wordpress Logo" title="Wordpress Logo" width="100" height="100" class="alignleft size-full wp-image-611" />Today, I found out about a WordPress plugin called <em>Elastic</em> (<a href="http://elastictheme.org/">http://elastictheme.org/</a>, <a href="http://wordpress.org/extend/plugins/elastic-theme-editor/">download link</a>) which is a WYSIWYG theme editor for WordPress. </p>
<p>It looks like a very promising technology to make it easier to develop WordPress themes. I&#8217;m interested in re-useable modules so, if I develop something interesting for one client, I can re-use the same something for a different client with 1-click (therefore being able to quote them a reduced price). Plugins and widgets achieve this to some extent but <em>Elastic</em> aims to make the same possible at a more fundamental level.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bitvolution.com/elastic-wordpress-plugin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
