<?xml version="1.0" encoding="UTF-8"?>
<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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Inspire Labs</title>
	
	<link>http://www.inspirelabs.co.uk</link>
	<description>Updates from Inspire Digital at IPC Media</description>
	<lastBuildDate>Wed, 05 Oct 2011 14:03:49 +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/inspire-labs" /><feedburner:info uri="inspire-labs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>51.50635761134571</geo:lat><geo:long>-0.10031193494796753</geo:long><item>
		<title>BetterXML</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/sQvxv7fdi40/</link>
		<comments>http://www.inspirelabs.co.uk/05/10/2011/betterxml/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 14:03:49 +0000</pubDate>
		<dc:creator>John Wright</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.inspirelabs.co.uk/?p=345</guid>
		<description><![CDATA[Everyone hates the way that PHP&#8217;s SimpleXML object handles variables. We find ourselves constantly checking if the string we&#8217;ve been given back contains numeric or boolean values. Well&#8230; here&#8217;s a quick fix. &#38;lt;?php &#160; /** * A decorator for SimpleXML to add 2 important things: * 1) The &#34;hasChildren() method&#34;. * 2) The &#34;asVar()&#34; method [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone hates the way that PHP&#8217;s SimpleXML object handles variables. We find ourselves constantly checking if the string we&#8217;ve been given back contains numeric or boolean values. Well&#8230; here&#8217;s a quick fix.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?php
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * A decorator for SimpleXML to add 2 important things:
 * 1) The &quot;hasChildren() method&quot;.
 * 2) The &quot;asVar()&quot; method which uses type checking to discover integers and boolean values.
 *
 * @author John Wright
 */</span>
<span style="color: #000000; font-weight: bold;">class</span> BetterXML implements ArrayAccess<span style="color: #339933;">,</span> Iterator
<span style="color: #009900;">&#123;</span>
  <span style="color: #009933; font-style: italic;">/**
   * The SimpleXML object
   *
   * @var SimpleXMLElement
   */</span>
  protected <span style="color: #000088;">$simple_xml</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Integer value used for iteration.
   *
   * @var integer
   */</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$pos</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * When methods don't exist in this class, check the decorated
   * SimpleXMLElement object.
   *
   * @param string $method
   * @param mixed[] $args
   * @return mixed
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __call<span style="color: #009900;">&#40;</span><span style="color: #000088;">$method</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span> <span style="color: #000088;">$args</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">method_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">,</span> <span style="color: #000088;">$method</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #990000;">call_user_func_array</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">,</span> <span style="color: #000088;">$method</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$args</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    throw <span style="color: #000000; font-weight: bold;">new</span> BadMethodCallException<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Method BetterXML::<span style="color: #006699; font-weight: bold;">$method</span>() does not exist.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Constructor
   *
   * @param string|SimpleXMLElement $content This can be a string containing XML content, a string representing a path to an XML file or a SimpleXML object
   * @return BetterXML
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span> instanceof SimpleXMLElement<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml <span style="color: #339933;">=</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml <span style="color: #339933;">=</span> <span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml <span style="color: #339933;">=</span> <span style="color: #990000;">simplexml_load_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Decorate all SimpleXML objects with the BetterXML class.
   *
   * @param string $var_name
   * @return BetterXML
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __get<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var_name</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$var</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$var_name</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$var</span> ? <span style="color: #000000; font-weight: bold;">new</span> BetterXML<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$var</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Setting will actually set to the decorated SimpleXML object.
   *
   * @var string $name
   * @var mixed $value
   * @return void
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __set<span style="color: #009900;">&#40;</span><span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Decoration method for SimpleXML::_toString().
   *
   * @return string
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __toString<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Returns a variable other than BetterXML.
   *
   * If this has children, the method will just return itself.
   * If the content is numeric, the method will return an integer or float.
   * If the content is either &quot;true&quot; or &quot;false&quot; the method will return a boolean.
   * If all else fails, this will return the content as a string.
   *
   * @return mixed
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> asVar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>hasChildren<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000088;">$var</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_numeric</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span> ? <span style="color: #009900;">&#40;</span>float<span style="color: #009900;">&#41;</span><span style="color: #000088;">$var</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span><span style="color: #000088;">$var</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^true$/i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/^false$/i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$var</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Returns the decorated SimpleXML object.
   *
   * @return SimpleXMLElement
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getRaw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**
   * Returns a boolean depicting whether this element has
   * children.
   *
   * @return boolean
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> hasChildren<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>children<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span> ? <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@+
   * @see Iterator
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">current</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>offsetGet<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">key</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">next</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #339933;">++</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>offsetGet<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #990000;">rewind</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>offsetGet<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> valid<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>offsetExists<span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@+
   * @see ArrayAccess
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> offsetExists<span style="color: #009900;">&#40;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #009900;">&#91;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> offsetGet<span style="color: #009900;">&#40;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$var</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #009900;">&#91;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$var</span> ? <span style="color: #000000; font-weight: bold;">new</span> BetterXML<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$var</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> offsetSet<span style="color: #009900;">&#40;</span><span style="color: #000088;">$offset</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #009900;">&#91;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #009933; font-style: italic;">/**#@-*/</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> offsetUnset<span style="color: #009900;">&#40;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>simple_xml<span style="color: #009900;">&#91;</span><span style="color: #000088;">$offset</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/sQvxv7fdi40" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/05/10/2011/betterxml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/05/10/2011/betterxml/</feedburner:origLink></item>
		<item>
		<title>The Journey of the Inspire Labs Logo: Chapter Four</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/5luWMUd1ULs/</link>
		<comments>http://www.inspirelabs.co.uk/04/06/2010/inspire-labs-logo-pt4/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 16:14:01 +0000</pubDate>
		<dc:creator>Steve Lambert</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Logo]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=275</guid>
		<description><![CDATA[So here we are at the end of our (admittedly long) journey… Before we get to the finished thing, we&#8217;ll have a look at the last few things I did to get there. This will involve playing with shapes, colours and a couple of fonts. Actually, while we&#8217;re on the subject of fonts — I [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-286" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/colourwheel.png" alt="" width="203" height="203" /></p>
<p>So here we are at the end of our (admittedly long) journey…</p>
<p>Before we get to the finished thing, we&#8217;ll have a look at the last few things I did to get there. This will involve playing with shapes, colours and a couple of fonts.</p>
<p>Actually, while we&#8217;re on the subject of fonts — I actually went ahead and chose a combination of Museo and Museo Sans, so that&#8217;s that topic addressed already.</p>
<p></p>
<p>Right, so the text has moved to the right of the logo. Since the logo will be appearing predominantly on the web, the logo doesn&#8217;t have to shrink too much before the text becomes unreadable&mdash;this format will keep the sizes of the text <em>and</em> the logo a bit closer and it will also fit better in the top-right of a typical web layout.</p>
<p>I&#8217;ve also gone for a blue for now.</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-1-0.png" alt="" width="400" height="179" class="aligncenter size-full wp-image-319" /></p>
<p>&ldquo;Let&#8217;s liven thing up&rdquo; I thought to myself. So I tried adding some shapes around the swash. Lots didn&#8217;t work, but a nice rounded squares was most promising.</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-1-1.png" alt="" width="400" height="179" class="aligncenter size-full wp-image-320" /></p>
<p>Not exciting enough though. &ldquo;I&#8217;ll skew the crap out of it!&rdquo; I thought, and so I did.</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-1-2.png" alt="" width="400" height="176" class="aligncenter size-full wp-image-321" /></p>
<p>Looks a bit more interesting, but <em>still</em> not quite the powerhouse of excitement and wonder I was hoping for. Then I decided to take it to a whole new level&hellip;</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-1-3.png" alt="" width="400" height="169" class="aligncenter size-full wp-image-322" /></p>
<p>&ldquo;Now we&#8217;re getting somewhere&rdquo;! This maybe moving away slightly from the idea that logos should have a strong contrast&mdash;so they can work on any background colour, but who cares. Besides, it&#8217;s <a href="http://www.logolounge.com/articles/default.asp?ArticleID=782">totally acceptable</a> these days. I tried some more with the skewed shape too.<br />
<img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-2-1.png" alt="" width="400" height="157" class="aligncenter size-full wp-image-323" /></p>
<p>I fell in love with this, and decided to try it in some other colours&hellip;</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-2-2.png" alt="" width="400" height="157" class="aligncenter size-full wp-image-324" /><br />
<img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-2-3.png" alt="" width="400" height="157" class="aligncenter size-full wp-image-325" /></p>
<p>Here&#8217;s my thoughts, anyway: the red looks a little too <em>Adobe</em>, the green is a little too <em>BP</em> (especially bad at the moment!), but in the end, I settled for the good old blue I&#8217;d been using all along.</p>
<p><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/logo-2-0.png" alt="" width="400" height="157" class="aligncenter size-full wp-image-323" /></p>
<p>So there you have it. It&#8217;s now 17:13 on a sunny Friday, so rather than waffle on I&#8217;m just gonna say &ldquo;BYE BYE&rdquo;!</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/5luWMUd1ULs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/04/06/2010/inspire-labs-logo-pt4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/04/06/2010/inspire-labs-logo-pt4/</feedburner:origLink></item>
		<item>
		<title>Herzlich Wilkommen Pete!</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/uKe7hiTSDjw/</link>
		<comments>http://www.inspirelabs.co.uk/04/06/2010/herzlich-wilkommen-pete/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:22:28 +0000</pubDate>
		<dc:creator>Brighty</dc:creator>
				<category><![CDATA[Team News]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=307</guid>
		<description><![CDATA[We warmly welcome Pete to the team as our most recent new recruit.  But what really makes him tick?  Well, we've asked him and then we wrote a blog post about it.]]></description>
			<content:encoded><![CDATA[<p><strong>Who are ya?</strong> I’m Pete Chamberlin (Spelt like Cham, and Berlin)</p>
<p><strong>Where are you from?</strong> Norfolk</p>
<p><strong>…and your chosen specialist subject is</strong>?  Just general knowledge really.  I like being a jack of all trades!</p>
<p><strong>Currently on Spotify, I am mostly listening to…</strong> Nashville Skyline by Bob Dylan.</p>
<p><strong>How do you take your tea/coffee?</strong> Tea.  Milk no sugar.  I’m sweet enough. <img src='http://www.inspirelabs.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>What books/blogs are you currently reading? </strong> Mythical Man Month by Fredrick P. Brooks.  Poems of W.H  Auden, selected by John Fuller and some other, proper geeky books!</p>
<p><strong>The last place I went on holiday was… </strong>a Greek island.  Small Cyclades.  Beautiful, hot and secluded.</p>
<p><strong>When at the pub, I’ll be having…</strong> a Bitter.  Preferably Adnams.</p>
<p><strong>My favourite animal is… </strong> Well, In real life, I prefer dogs to cats.  But on the internet, I prefer cats.  The internet is made of cats.</p>
<p><strong>My least favourite sport is…</strong> Curling.  I can’t stand it.  WTF do you watch it for?  Or play it for that matter?  It’s a ridiculous sport!</p>
<p><strong>If we could employ a famous face in the team, who would you choose? </strong>I think Jack Nicholson would be a laugh.</p>
<p><strong>Mac or PC? </strong>Linux</p>
<p><strong>Beatles or Rolling Stones?</strong> Stones.  Music with BALLS!</p>
<p><strong>Marmite or Peanut Butter? </strong>Marmite</p>
<p><strong>Night Owl or Early Riser?</strong> Early Riser</p>
<p><strong>White Hart or Refinery? </strong> White Hart.  I’ve not been to the Refinery yet.  They keep a good pint at the Dickens.</p>
<p><strong>What are your thoughts of the team so far?</strong> Many and varied.  Mostly positive!</p>
<p><strong>And finally…  if your friends had to describe you in three words, what would they be?</strong><br />
That’s an impossible question that one! Maybe: very, very difficult.</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/uKe7hiTSDjw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/04/06/2010/herzlich-wilkommen-pete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/04/06/2010/herzlich-wilkommen-pete/</feedburner:origLink></item>
		<item>
		<title>Marine website set for smoother sailing</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/L_eExmy6pQU/</link>
		<comments>http://www.inspirelabs.co.uk/04/06/2010/boats-for-sale-seo/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:56:02 +0000</pubDate>
		<dc:creator>Brighty</dc:creator>
				<category><![CDATA[Search Engine Optimisation]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=297</guid>
		<description><![CDATA[Over the last few weeks, IPC Digital Inspire has been focussing on some major SEO improvements for a certain website that sells boats...]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks, we have been focussing on some major SEO improvements for one of our brands which sells boats&#8230;</p>
<h2>The Problem</h2>
<p>The website was performing moderately for boat manufacturer based searches within Google search results (such as &#8220;fairline boats for sale&#8221;) but there was still much room for improvement.</p>
<p>Along with manfacturer based searches, we also wanted to improve our ranking for the most generic term of &#8220;boats for sale&#8221; for which we were appearing around page 10 of results.</p>
<h2>So what did we do?</h2>
<p>We focussed on three main areas:</p>
<p><strong><img class="alignright size-thumbnail wp-image-303" style="margin: 2px;" title="document-outline" src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/document-outline-150x100.jpg" alt="" width="150" height="100" />Document outline</strong> &#8211; Over time, as the website grew, the document outline got a little left behind.  We ensured that all pages throughout the website were semantically correct; whether you were looking at the homepage, a list of boats or an actual boat itself.  Obviously the benefit from this being that spiders can crawl our nicely strucutred pages much easier.</p>
<p><strong>Friendly URL&#8217;s</strong> &#8211; All page url&#8217;s were made up of the standard symfony stucture based on search criteria.  This would work well for when a user performed a real search on the website, but for popular pages we want to encourage regular crawling of, it didn&#8217;t work well at all.  For example, previously the page for displaying all Beneteau boats for sale would have been <a href="http://www.MYWEBSITE.com/Boats/preSearch/locationCountryId/0/manufacturer/Beneteau/clearAll/1">http://www.MYWEBSITE.com/Boats/preSearch/ locationCountryId/0/manufacturer/Beneteau/clearAll/1</a> and has now been updated to a concise <a href="http://www.MYWEBSITE.com/Search-by-manufacturer/BeneteauThe">http://www.MYWEBSITE.com/Search-by-manufacturer/Beneteau</a></p>
<p><img class="alignright size-medium wp-image-302" style="margin: 2px;" title="address-bar" src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/address-bar-300x39.jpg" alt="" width="300" height="39" />The updates on the URL structures affected:</p>
<ul>
<li>Popular Brands</li>
<li>Country (great for our long tail indexing)</li>
<li>Boat types</li>
</ul>
<p>Obviously, we had to put some 301 rules in, so we can catch old pages successfully</p>
<h2>Stop the SPAM!</h2>
<p>YBW is lucky to have a thriving forum community.  So whilst the discussions grow and grow, so does the amount of instances of links in the YBW portal navigation (shown below).</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-304" style="margin: 2px;" title="navigation" src="http://inspirelabs.co.uk/wp-content/uploads/2010/06/navigation.jpg" alt="" width="347" height="69" /></p>
<p>Whilst these links are valuable for a user; for a spider it could be considered as keyword spamming.  So we simply made these links nofollow if they were found within the Forum.</p>
<h2>The Results</h2>
<p>As mentioned above, our generic search of &#8220;boats for sale&#8221; saw us somewhere around 100+ on Google.</p>
<p>We continued to monitor daily to see what affect our changes were having.  Generally, our new URLs were indexed within 2 days.  In terms of the generic search results placement, we saw a steady progress upwards to pages 4-5 of SERPs within the first two weeks.</p>
<p>Today, we are appearing at the top of the second page (14th postition) which is a fantastic climb within only three weeks of putting the changes public.  Obviously, we still have room for improvement by getting to the first page; but we have some further ideas in the pipeline!</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/L_eExmy6pQU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/04/06/2010/boats-for-sale-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/04/06/2010/boats-for-sale-seo/</feedburner:origLink></item>
		<item>
		<title>The Journey of the Inspire Labs Logo: Chapter Three</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/FFuLZPlS0AY/</link>
		<comments>http://www.inspirelabs.co.uk/12/05/2010/inspire-labs-logo-pt3/#comments</comments>
		<pubDate>Wed, 12 May 2010 10:05:21 +0000</pubDate>
		<dc:creator>Steve Lambert</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Logo]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=234</guid>
		<description><![CDATA[We&#8217;re getting there. Finally. Whilst I still need to move some anchor points around and tweak some curves, the swash logo is nearing completion. So much so that I&#8217;ve gone ahead and started testing it with various fonts. As I (think I) said before, my font library is a bit limited, so I&#8217;ve had to [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re getting there. Finally.</p>
<p style="text-align: center"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/intro.png"><img class="size-full wp-image-235 aligncenter" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/intro.png" alt="" width="400" height="400" /></a></p>
<p><span id="more-234"></span><br />
Whilst I still need to move some anchor points around and tweak some curves, the swash logo is nearing completion. So much so that I&#8217;ve gone ahead and started testing it with various fonts. As I (think I) said before, my font library is a bit limited, so I&#8217;ve had to make do with what I have plus the odd GPL typeface.</p>
<p>I&#8217;ve also decided to stick with sans serif typefaces to contrast with the swashy-serif logo. Most of the fonts that have made it to the final choices have ended up being fiarly modern and geometric.</p>
<p>We&#8217;ll start with my least favourite, below. The idea of using monospace font <a href="http://www.ms-studio.com/FontSales/anonymouspro.html">Anonymous Sans</a> in a camel case format came from all that coding the rest of the team do.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/anonymous-pro.png"><img class="aligncenter size-full wp-image-241" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/anonymous-pro.png" alt="" width="400" height="400" /></a></p>
<p>The problem is, obviously, that the font is mainly intended for use at small sizes in a text editor. As such it doesn&#8217;t look that sexy at larger sizes. Also, the idea is kinda cheesy to begin with anyway!</p>
<p>Next up is <a href="http://www.dafont.com/quadranta.font">Quadranta</a>.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/quadranta-regular.png"><img class="aligncenter size-full wp-image-250" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/quadranta-regular.png" alt="" width="400" height="400" /></a></p>
<p>Quite modern and geometric, but don&#8217;t feel it fits absolutely right myself. I love the lowercase &#8216;e&#8217; though!</p>
<p>Time for something classic, Helvetica Neue Light.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/helvetica-neue-light.png"><img class="aligncenter size-full wp-image-253" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/helvetica-neue-light.png" alt="" width="400" height="400" /></a></p>
<p>Well you generally can&#8217;t go wrong with a bit of Helvetica, though I might need to play with the kerning a bit.</p>
<p>Let&#8217;s switch it up a bit with a touch of slab-serif — <a href="http://new.myfonts.com/fonts/exljbris/museo/">Museo 300</a>.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/museo-300.png"><img class="aligncenter size-full wp-image-257" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/museo-300.png" alt="" width="400" height="400" /></a></p>
<p>I think this works really well. It&#8217;s modern, quirky &amp; sexy — just like our <a href="http://inspirelabs.co.uk/team/">team</a>!</p>
<p><a href="http://new.myfonts.com/search/myriad+pro/fonts/">Myriad Pro</a> next, which is one of my current favourite sans typefaces.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/myriad-pro-regular.png"><img class="aligncenter size-full wp-image-261" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/myriad-pro-regular.png" alt="" width="400" height="400" /></a></p>
<p>Myriad Pro Regular, above, looks solid and modern against the logo. It&#8217;s condensed font, below, is sturdy too but looks just a little <em>too</em> corporate for my liking. I mean that&#8217;s fine and everything, but it doesn&#8217;t really fit our team that well.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/myriad-pro-condensed.png"><img class="aligncenter size-full wp-image-262" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/myriad-pro-condensed.png" alt="" width="400" height="400" /></a></p>
<p>Finally, Lovely geometric typeface <a href="http://www.dafont.com/geo-sans-light.font">Geo Sans Light</a>.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/05/geo-sans-light.png"><img class="aligncenter size-full wp-image-264" src="http://inspirelabs.co.uk/wp-content/uploads/2010/05/geo-sans-light.png" alt="" width="400" height="400" /></a></p>
<p>Pretty good. Nice and modern looking; and a nice compliment to the logo, but I think the weight is a little too light to stand up to the heavy logo.</p>
<p>Well there&#8217;s a lot to think about there, but my clear favourites are:</p>
<ul>
<li>Museo — although I&#8217;m going to have another look at the 500 weight.</li>
<li>Myriad Pro Regular.</li>
<li>Hopefully a slightly thicker alternative to Geo Sans, if I can find one. That happens to be free!</li>
</ul>
<p>Next time, I&#8217;ll be showing off the winning font, and going over what I&#8217;ve done with colours. Exciting.</p>
<p>:: EDIT ::</p>
<p>By the way, you are encouraged to share your thoughts in the comments below…</p>
<p>Thanks</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/FFuLZPlS0AY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/12/05/2010/inspire-labs-logo-pt3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/12/05/2010/inspire-labs-logo-pt3/</feedburner:origLink></item>
		<item>
		<title>The Journey of the Inspire Labs Logo: Chapter Two</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/OrNcvmgAKLU/</link>
		<comments>http://www.inspirelabs.co.uk/25/03/2010/inspire-labs-logo-pt2/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 11:50:25 +0000</pubDate>
		<dc:creator>Steve Lambert</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Logo]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=211</guid>
		<description><![CDATA[In my last post, we looked at some initial sketches. Sketching is an important first step in any design as it allows for rapid creation and evolution of ideas. It also allows the rejection of any bad ideas before any time is invested producing mock-ups in Illustrator, Photoshop et al. I&#8217;ve since taken the most [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://inspirelabs.co.uk/16/03/2010/inspire-labs-logo-pt1/">last post</a>, we looked at some initial sketches. Sketching is an important first step in any design as it allows for rapid creation and evolution of ideas. It also allows the rejection of any bad ideas before any time is invested producing mock-ups in Illustrator, Photoshop et al.</p>
<p><span id="more-211"></span></p>
<p>I&#8217;ve since taken the most promising of the initial ideas and produced some quick mock-ups in Illustrator. It&#8217;s worth mentioning that I&#8217;m yet to have a proper look at colours and fonts &mdash; that&#8217;s for the next stage and for now I&#8217;ve just used a nice blue. Anyway, the eye-candy &hellip;.</p>
<p>The &ldquo;thought bubbles&rdquo; and the &ldquo;labs&rdquo; balance this logo out quite nicely. I&#8217;ll probably put a little more work into this one as I think it could look really good with some refinement and a decent typeface.</p>
<div id="attachment_219" class="wp-caption aligncenter" style="width: 360px"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-bubble.png"><img class="size-full wp-image-219" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-bubble.png" alt="" width="350" height="300" /></a><p class="wp-caption-text">Myriad Pro Condensed &amp; Semibold (top). Quadranta Bold &amp; Myriad Pro Semibold (bottom).</p></div>
<p>The &ldquo;spot&rdquo; logo hasn&#8217;t come out as well as I thought it might. It reminds me of cheese, and there are spacing issues. As the logo gets smaller (and it <em>will</em> on the web) it begins to get rather cluttered. With some work towards spacing it all out this could be improved, but I don&#8217;t think it&#8217;ll ever look brilliant. Besides, that letter &ldquo;l&rdquo; looks like a lower-case &ldquo;i&rdquo;. Rubbish!</p>
<p>However, <a href="http://new.myfonts.com/fonts/exljbris/museo-sans/">Museo Sans</a> is looking pretty sexy!</p>
<div id="attachment_222" class="wp-caption aligncenter" style="width: 410px"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-spot.png"><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-spot.png" alt="" width="400" height="300" class="size-full wp-image-222" /></a><p class="wp-caption-text">Museo Sans 500, ladies &amp; gentlemen.</p></div>
<p>I developed the idea of using the initials a little further, removing the spot and joining the letters up in a nice &ldquo;swishy&rdquo; ligature style.</p>
<p><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-sketch.png"><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-sketch.png" alt="" width="440" height="582" class="aligncenter size-full wp-image-221" /></a></p>
<p>I was quite enamoured with this one and took it straight into Illustrator &hellip;!</p>
<div id="attachment_220" class="wp-caption aligncenter" style="width: 310px"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-lig.png"><img src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/1003-logo2-lig.png" alt="" width="300" height="600" class="size-full wp-image-220" /></a><p class="wp-caption-text">I've used Helvetica Neue Roman for the text.</p></div>
<p>There&#8217;s some messy vector work right there, but it&#8217;s only a mock-up. Nevertheless, I think it&#8217;s starting to look like a believable logo. It has some nice symmetry, it&#8217;s balanced, a little tall maybe but this is <em>definitely</em> going to the next stage. With the right colours, a smart font and some wizardry with the pen tool; we might have ourselves a logo &hellip;.</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/OrNcvmgAKLU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/25/03/2010/inspire-labs-logo-pt2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/25/03/2010/inspire-labs-logo-pt2/</feedburner:origLink></item>
		<item>
		<title>Out with the Old, In with the New</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/zFVLBfaKIJI/</link>
		<comments>http://www.inspirelabs.co.uk/22/03/2010/out-with-the-old-in-with-the-new/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 17:38:55 +0000</pubDate>
		<dc:creator>Adam Pancutt</dc:creator>
				<category><![CDATA[Team News]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=209</guid>
		<description><![CDATA[So Ladley decided to leave us. Boo! He&#8217;s a bit of a greedy guy that one; someone with a finger in almost every pie. From starting out as the Team Leader of the Southbank division he eventually ended up in the greatness that is Inspire. After nearly three years at IPC he heads for pastures [...]]]></description>
			<content:encoded><![CDATA[<p>So Ladley decided to leave us. Boo! He&#8217;s a bit of a greedy guy that one; someone with a finger in almost every pie. From starting out as the Team Leader of the Southbank division he eventually ended up in the greatness that is Inspire. After nearly three years at IPC he heads for pastures new, and good luck to him!</p>
<p>On the flip-side, today we introduce to you Mr Peter Chamberlin! Chambers, or Cham for short and C for shorter (and to avoid confusion with the Jankers) is our latest recruit. A photo will be available for you to admire soon but for now, an applause will do&#8230;</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/zFVLBfaKIJI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/22/03/2010/out-with-the-old-in-with-the-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/22/03/2010/out-with-the-old-in-with-the-new/</feedburner:origLink></item>
		<item>
		<title>The Journey of the Inspire Labs Logo: Chapter One</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/ezNIrxKBtxo/</link>
		<comments>http://www.inspirelabs.co.uk/16/03/2010/inspire-labs-logo-pt1/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:49:49 +0000</pubDate>
		<dc:creator>Steve Lambert</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=187</guid>
		<description><![CDATA[The journey of the Inspire Labs logo begins with some initial sketches and ideas.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left">Adam has been banging on at me to get a logo designed for this blog. So, as proof that this is actually happening, I&#8217;m going to record the journey here starting with the initial sketches.</p>
<p style="text-align: left">First I thought I&#8217;d have a play with the two tittles (the dot above the letter &#8216;i&#8217;) in the word &#8216;inspire&#8217;.</p>
<p><span id="more-187"></span></p>
<div class="mceTemp mceIEcenter">
<dl>
<dt><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-01.png"><img class="size-full wp-image-188" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-01.png" alt="" width="440" height="210" /></a></dt>
<dd>Tittle  play for the Inspire Labs logo</dd>
</dl>
</div>
<p style="text-align: left">This moved on to a team motif thing, using heads in place of the joining circles. As you can see, I quickly decided that it resembled some sort of crappy crown.</p>
<p style="text-align: left"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-02.png"><img class="aligncenter size-full wp-image-192" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-02.png" alt="" width="440" height="629" /></a></p>
<p style="text-align: left">Eventually I decided to leave this direction well alone as I wasn&#8217;t happy with how it was looking. The results were a mixture of cheesy and just plain ol&#8217; crummy!</p>
<p style="text-align: left">I did however quite like the thought bubble as an idea, so that moved on to the next iteration. I began by plopping it over the letter &#8216;i&#8217;.</p>
<p style="text-align: left"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-03.png"><img class="aligncenter size-full wp-image-194" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-03.png" alt="" width="440" height="522" /></a></p>
<p style="text-align: left">I think the top version is the neatest, as the bubbles are contained within the space between the x-height and the cap-height of the text. In the bottom version the thought bubbles look a little tacked on. Granted this is just a sketch, but I don&#8217;t really foresee any nice results coming from this solution. So I moved on to playing with the positioning a bit more.</p>
<p style="text-align: left">Here I&#8217;ve tried moving it above the letter &#8216;n&#8217; so that the largest bubble sits above the initial &#8216;I&#8217;, serving as a kind of pseudo tittle.</p>
<p style="text-align: left"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-04.png"><img class="aligncenter size-full wp-image-200" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-04.png" alt="" width="440" height="213" /></a></p>
<p style="text-align: left">This led me on to the following  treatment which would involve a spot logo containing just the &#8216;I&#8217; and &#8216;L&#8217; placed next to the text in some way. This solution would look great as a favicon and could potentially work  well as a logo.</p>
<p style="text-align: left"><a href="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-05.png"><img class="aligncenter size-full wp-image-202" src="http://inspirelabs.co.uk/wp-content/uploads/2010/03/sketch-05.png" alt="" width="440" height="222" /></a></p>
<p style="text-align: left">The next steps will be to consider a colour palette; look at some fonts (there&#8217;s no budget for this so I&#8217;ll have to rely on what I have!); and to try some of these ideas out in Illustrator. Stay tuned&hellip;</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/ezNIrxKBtxo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/16/03/2010/inspire-labs-logo-pt1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/16/03/2010/inspire-labs-logo-pt1/</feedburner:origLink></item>
		<item>
		<title>YUI3: My First Experience</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/DExjCdzMeIY/</link>
		<comments>http://www.inspirelabs.co.uk/16/02/2010/yui3-my-first-experience/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 09:29:55 +0000</pubDate>
		<dc:creator>Adam Pancutt</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=176</guid>
		<description><![CDATA[With the Yahoo! User Interface (YUI) javascript library now the library of choice at IPC I thought it was about time to start playing with it. Background to Javascript Frameworks My first experience of a javascript library was to build a debug console for my framework. Version one of the console was built in jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>With the Yahoo! User Interface (YUI) javascript library now the library of choice at IPC I thought it was about time to start playing with it.</p>
<h2>Background to Javascript Frameworks</h2>
<p>My first experience of a javascript <em>library </em>was to build a debug console for <a href="http://framework.pixelinx.co.uk" target="_blank">my framework</a>. Version one of the console was built in jQuery (v1.2, I think). I liked it. I liked how you no longer needed to repeat the same cross-browser checks every time you built something new; how effects were easy to acheive without having to create your own; chaining. Most importantly, though, I liked how the library made the development experience a little more unified.</p>
<h2>First Taste of YUI</h2>
<p>A few months later I decided to migrate the jQuery console to <a href="http://developer.yahoo.com/yui/2/" target="_blank">YUI2</a>. I quickly found that the <a href="http://developer.yahoo.com/yui/docs/" target="_blank">documentation</a> was not brilliant for new-comers (and still isn&#8217;t). My migration, although worked, was not how YUI2 intended a widget to be built. Overall, it took me a lot longer to learn YUI2 than jQuery and I put this mostly down to the documentation (<a href="http://api.jquery.com/" target="_blank">jQuery API docs</a> are brilliant) though also because jQuery tutorials are abundant as are community plugins which you can rip apart to assist your learning.</p>
<h2>Upgrading to YUI3</h2>
<p>Last week I decided to have a go at upgrading the console to <a href="http://developer.yahoo.com/yui/3/" target="_blank">YUI3</a>. Once again, the <a href="http://developer.yahoo.com/yui/3/api/" target="_blank">documentation</a> was pretty poor for new-comers but at least this time at least I had a foundation to work with. This time I wanted to do things right. I wanted to extend the YUI Widget class and do things how YUI wanted me to do things. Just a week later, it&#8217;s done.</p>
<h2>Benefits of YUI3</h2>
<p>I couldn&#8217;t give you a fair comparison between jQuery and YUI, or advise you on which is the best for your project, as I&#8217;ve not kept up with the progress of jQuery. However, I&#8217;m happy YUI is the IPC standard as it&#8217;s something I&#8217;ve had a lot of fun learning and playing with.</p>
<p>Key components of YUI3 that I&#8217;ve come to love are:</p>
<ul>
<li><a href="http://developer.yahoo.com/yui/3/yui/#loader" target="_blank">Loader</a></li>
<li><a href="http://developer.yahoo.com/yui/3/widget/" target="_blank">Widget</a></li>
<li><a href="http://developer.yahoo.com/yui/3/attribute/" target="_blank">Attribute</a></li>
<li><a href="http://developer.yahoo.com/yui/3/event/" target="_blank">Event</a></li>
<li><a href="http://developer.yahoo.com/yui/3/node/">Node</a>, specifically their consideration for <a href="http://developer.yahoo.com/yui/3/node/#node-aria">WAI-ARIA</a> support and <a href="http://developer.yahoo.com/yui/3/node/#node-query">Node Queries/CSS3 Selectors</a></li>
</ul>
<p>Next, to get the most out of YUI3, I need to look into:</p>
<ol>
<li><a href="http://developer.yahoo.com/yui/3/profiler/" target="_blank">Profiler</a></li>
<li><a href="http://developer.yahoo.com/yui/3/test/" target="_blank">Test</a></li>
<li>&#8230;and the other many utilities available</li>
</ol>
<h2>Summary</h2>
<p>In summary, once you&#8217;ve grasped YUI and put together your first widget you&#8217;ll feel like you&#8217;ve acheived something a lot more pure, legible and stable than you do with jQuery. Or at least I do.</p>
<h2>More to Come</h2>
<p>Over the next few days I hope to put together some tutorials to assist people with their first YUI widget. It&#8217;s been a struggle for me to find the help I needed so, hopefully, I can help a few of you out there.</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/DExjCdzMeIY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/16/02/2010/yui3-my-first-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/16/02/2010/yui3-my-first-experience/</feedburner:origLink></item>
		<item>
		<title>Pixelinx Framework</title>
		<link>http://feedproxy.google.com/~r/inspire-labs/~3/Tgc7fPanYMA/</link>
		<comments>http://www.inspirelabs.co.uk/19/11/2009/pixelinx-framework/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 11:23:50 +0000</pubDate>
		<dc:creator>Adam Pancutt</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://inspirelabs.co.uk/?p=153</guid>
		<description><![CDATA[The Pixelinx Framework is something I&#8217;ve been having a play around with over the past year. It&#8217;s still in relatively early stages but it&#8217;s something I&#8217;m taking more seriously, and have recently open-sourced. Take a look.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://framework.pixelinx.co.uk" target="_blank">Pixelinx Framework</a> is something I&#8217;ve been having a play around with over the past year. It&#8217;s still in relatively early stages but it&#8217;s something I&#8217;m taking more seriously, and have recently open-sourced.</p>
<p><a href="http://framework.pixelinx.co.uk" target="_blank">Take a look</a>.</p>
<img src="http://feeds.feedburner.com/~r/inspire-labs/~4/Tgc7fPanYMA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.inspirelabs.co.uk/19/11/2009/pixelinx-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.inspirelabs.co.uk/19/11/2009/pixelinx-framework/</feedburner:origLink></item>
	</channel>
</rss>

