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

<channel>
	<title>Antanova Ltd. &#187; Blog</title>
	<atom:link href="http://antanova.com/category/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://antanova.com</link>
	<description>We make excellent websites</description>
	<lastBuildDate>Thu, 15 Sep 2011 21:23:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Golden rules: websites don&#8217;t have to look the same</title>
		<link>http://antanova.com/blog/design/golden-rules-websites-dont-have-to-look-the-same</link>
		<comments>http://antanova.com/blog/design/golden-rules-websites-dont-have-to-look-the-same#comments</comments>
		<pubDate>Fri, 18 Mar 2011 10:56:42 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=497</guid>
		<description><![CDATA[Want to read about one of my Golden Rules of web development? If you're a designer or project manager, you do.]]></description>
			<content:encoded><![CDATA[<p>Sometimes when working on a project there can be a little friction between different groups. Where people&#8217;s jobs are different, their goals are different, and their processes differ and lie outside their collaborators&#8217; expertise. <strong>Three </strong>distinct groups come to mind from my own experience: the <strong>client</strong>, the <strong>designer </strong>and the <strong>developer</strong>. Sometimes lines are blurred between the three, and sometimes the designer is replaced by a <strong>project manager</strong>, though often this project manager can be thought of as the designer&#8217;s <strong>proxy</strong>.</p>
<p>One issue that crops up fairly often for me is when trying to get websites or html email to look consistent across different browsers / email clients. There&#8217;s a golden rule about, that I think anyone commissioning web development should know:</p>
<h2>Websites will not look the same in all browsers.</h2>
<p>Nor <strong>should </strong>they. Each browser uses a layout engine to format the pages of the websites you visit. There are a lot of different layout engines out there, built differently and for <strong>different purposes</strong>.</p>
<p>Users have different settings. Some users have <strong>low res</strong> screens so won&#8217;t see the whole width of the site, some have high res screens and will have to <strong>enlarge the default font size</strong> to be able to read what&#8217;s written. Some are on dial-up and will have disabled background images, others will be <strong>browsing the site on their phone</strong> or tablet.</p>
<p>So not only is it <strong>impossible </strong>to make sure that all browsers show exactly the same page to everyone, it <strong>isn&#8217;t desirable</strong> either. If I want to set my font size larger so I can read my laptop while sitting comfortably in a chair, then that&#8217;s my business, and I don&#8217;t want some jumped-up website over-ruing me and setting the fonts <strong>so small I have to squint</strong>.</p>
<p>Remember this the next time you&#8217;re developing a site. Users <strong>don&#8217;t sit and compare</strong> the site in different browsers. Here are a couple of links: <a href="http://dowebsitesneedtobeexperiencedexactlythesameineverybrowser.com/">saying it</a> <a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">with passion</a>, and <a href="http://www.lifeimitatingdesign.com/lid/websites-browsers/">with a bit of explanation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/design/golden-rules-websites-dont-have-to-look-the-same/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good quality JavaScript</title>
		<link>http://antanova.com/blog/web-development/good-quality-javascript</link>
		<comments>http://antanova.com/blog/web-development/good-quality-javascript#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:41:59 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Web-development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=474</guid>
		<description><![CDATA[Long time no post. A quality article on formatting your JavaScript code.]]></description>
			<content:encoded><![CDATA[<p>Hmmm, it seems that it&#8217;s been an inexcusably long time since I last posted here. Sorry about that, but life gets in the way. I&#8217;d rather be too busy to post than not.</p>
<p>Anyway, I ready this a while ago and have just got round to posting it here. It&#8217;s an article &#8211; <a href="http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/">Essentials of writing high quality JavaScript</a>. A very useful article with some good pointers on code formatting with analysis of the why. I have changed my curly-brace style as a result, you will be excited to hear. So now I do this:</p>
<pre>function somename() {
    // code
}
</pre>
<p>instead of this</p>
<pre>function somename2()
{
   // code
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/web-development/good-quality-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter status text links made clickable</title>
		<link>http://antanova.com/blog/code-bits/twitter-status-text-links-made-clickable</link>
		<comments>http://antanova.com/blog/code-bits/twitter-status-text-links-made-clickable#comments</comments>
		<pubDate>Tue, 23 Feb 2010 15:35:55 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Code-bits]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=446</guid>
		<description><![CDATA[I needed to transform plain tweets into something clickable, so I made a JavaScript function for it.]]></description>
			<content:encoded><![CDATA[<p>A new design agency being formed by an existing client needed a site. They had a good design ready, I just had to build the thing. It&#8217;s built in WordPress, but I also pull in their Twitter stream on the client side.</p>
<p><a href="http://apiwiki.twitter.com/">Twitter&#8217;s api</a> is easy enough to use. I opted for the JSON-p format, but something I didn&#8217;t realise at the time was that the status updates are purely the plain text. So any URLs, usernames or hashtags are just plain text: no wrapping in &lt;a&gt;&lt;/a&gt; tags. It&#8217;s an easy problem to solve, though, and here it is for anyone else who needs it.</p>
<pre><code>function twitify( text )
{
    // replace urls with linked ones
    var t2 = text.replace(/(http|https)(:\/\/)([^ ]+)/ig, '&lt;a href="$1$2$3"&gt;$1$2$3&lt;/a&gt;' );

    // replace @username with clickable twitter link
    t2 = t2.replace(/@([^ ]+)/gi,'&lt;a href="http://twitter.com/$1"&gt;@$1&lt;/a&gt;');

    // replace hashtags with Twitter searches
    t2 = t2.replace(/#([^ ]+)/gi,'&lt;a href="http://search.twitter.com/search?q=%23$1"&gt;#$1&lt;/a&gt;');

    return t2;
}
</code></pre>
<p>So, feed the tweet into that function, and back out it comes with links, @users and #hastags made clickable.</p>
<p>Did I mention I ♥ regular expressions?</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/code-bits/twitter-status-text-links-made-clickable/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cancel Haiti&#8217;s debt</title>
		<link>http://antanova.com/blog/off-topic/cancel-haitis-debt</link>
		<comments>http://antanova.com/blog/off-topic/cancel-haitis-debt#comments</comments>
		<pubDate>Wed, 27 Jan 2010 15:30:09 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[current affairs]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=443</guid>
		<description><![CDATA[Prompted by my sister-in-law, I signed a petition to cancel Haiti's debt. Put pressure on the G7 now and sign.]]></description>
			<content:encoded><![CDATA[<p>I got an email today from my sister-in-law, forwarded on after she&#8217;d signed an online petition. The petition was to lobby the international community to cancel Haiti&#8217;s debt. From what I have read (which is very little), the debt seems to be both incredibly unfair and a huge burden for the country. The G7 is due to meet very soon and could take action on this with enough pressure, so sign up quickly.</p>
<p>UK residents can sign both the below petitions, anyone else can sign the second one only.</p>
<ul>
<li><a href="http://petitions.number10.gov.uk/CancelHaitisDebt/">http://petitions.number10.gov.uk/CancelHaitisDebt/</a></li>
<li><a href="http://www.avaaz.org/en/haiti_cancel_the_debt_8/?vl">http://www.avaaz.org/en/haiti_cancel_the_debt_8/?vl</a></li>
</ul>
<p>Go on, you know it makes sense!</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/off-topic/cancel-haitis-debt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help getting Google sitelinks</title>
		<link>http://antanova.com/blog/seo/help-getting-google-sitelinks</link>
		<comments>http://antanova.com/blog/seo/help-getting-google-sitelinks#comments</comments>
		<pubDate>Thu, 21 Jan 2010 16:36:29 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=436</guid>
		<description><![CDATA[Some solid advice on getting Google to add sitelinks to your search listing.]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s some good, solid advice <a href="http://www.hochmanconsultants.com/articles/sitelinks.shtml">here</a> on trying to get Google sitelinks. The thing about sitelinks is that they give you more space on Google&#8217;s results page, and make your site look much more trustworthy and high-profile. This article dishes out some sensible advice, but unfortunately the exact method of getting these sitelinks remains securely locked in Google&#8217;s cupboard.</p>
<p>Of course, for the sitelinks to display, you have to get to number 1 on the search results page, which is a science in itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/seo/help-getting-google-sitelinks/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.net style master pages in PHP</title>
		<link>http://antanova.com/blog/code-bits/asp-net-style-master-pages-in-php</link>
		<comments>http://antanova.com/blog/code-bits/asp-net-style-master-pages-in-php#comments</comments>
		<pubDate>Tue, 08 Dec 2009 17:16:02 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Code-bits]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=412</guid>
		<description><![CDATA[After seeing the lovely way that master pages work in ASP.net, I thought I'd try doing something similar in PHP.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not a .net developer. A few months ago, though, I was building a mini site for a property company, who&#8217;s hosting was on a .net server. I thought I&#8217;d have a go at using <a href="http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx">master pages</a> instead of several different include files.</p>
<p>What a revelation! I really like the way that you specify a page that&#8217;s to be used as the template for the site, and simply add some place-holders that are to be populated with the content from your individual local pages. The whole thing then hangs together very nicely. You can even use relative links that are re-written by the server so no matter where you content page is, the link is always pointing at the same file. The code is clean, too, as the master and content pages are all marked up using XML, so all your code looks nice and is easy to follow in your editor of choice.</p>
<p>A different, but equally small site has now come up and it&#8217;s got me thinking about how to implement something like this in PHP. Now, there are several templating systems already out there for PHP, for example <a href="http://www.smarty.net">Smarty</a>. I didn&#8217;t want to use one of those, because like I said the site&#8217;s very small, and adding all those extra files in there and using the Smarty syntax would just unnecessarily increase the development time for such a small site. So, I set about making something up myself.</p>
<p>I&#8217;m pretty pleased with what I came up with: it&#8217;s not quite as clean as the .net version, but it is simple and easy enough that it will help rather than hinder the development of such as small site. I&#8217;ve got my template (the &#8216;master&#8217; page) on which I&#8217;ve defined a couple of areas where the content is to be dropped in.</p>
<p>template.php:</p>
<pre>&lt;?php Header("Content-Type: text/html; charset=UTF-8"); ?&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;&lt;?php echo $page-&gt;title; ?&gt;&lt;/title&gt;
    &lt;link rel="stylesheet" type="text/css" href="/path/to/stylesheet.css"&gt;
    &lt;?php echo $page-&gt;head; ?&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;nav&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="/"&gt;Nav item 1&lt;/a&gt;&lt;/li&gt;
        ...
        &lt;li&gt;&lt;a href="/"&gt;Nav item n&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/nav&gt;
    &lt;div&gt;
      &lt;?php echo $page-&gt;content; ?&gt;
    &lt;/div&gt;
    &lt;footer&gt;
      footer message here
    &lt;/footer&gt;
  &lt;/body&gt;
  &lt;?php echo $page-&gt;foot; ?&gt;
&lt;/html&gt;</pre>
<p>page.php:</p>
<pre>&lt;?php
$page-&gt;title    = "Hello, world";
$page-&gt;template = "template.php";
?&gt;
&lt;?php ob_start(); /* head   */ ?&gt;
  &lt;meta name="description" content="description here"&gt;
&lt;?php $page-&gt;head = ob_get_clean(); 

?&gt;
&lt;?php ob_start(); /* content*/ ?&gt;
  &lt;h1&gt;The Page Title&lt;/h1&gt;
  &lt;p&gt;The article goes here&lt;/p&gt;
&lt;?php $page-&gt;content = ob_get_clean(); 

?&gt;
&lt;?php ob_start(); /* foot   */ ?&gt;
  &lt;script type="text/javascript"&gt; ... /* page specific script */ &lt;/script&gt;
&lt;?php $page-&gt;foot = ob_get_clean(); 

?&gt;
&lt;?php include_once $page-&gt;template ?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/code-bits/asp-net-style-master-pages-in-php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Why I don&#8217;t use XHTML</title>
		<link>http://antanova.com/blog/web-development/why-i-dont-use-xhtml</link>
		<comments>http://antanova.com/blog/web-development/why-i-dont-use-xhtml#comments</comments>
		<pubDate>Mon, 23 Nov 2009 11:55:59 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Web-development]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=402</guid>
		<description><![CDATA[XHTML once seemed like a great solution to spaghetti code, but I stopped using it a while ago, with a few good reasons.]]></description>
			<content:encoded><![CDATA[<p>Although this is a pretty old topic, and people have decided to come down on one side or the other already, I was reminded of the debate recently. I was looking at some code another dev had done, and was altering it to suit my style more. There was nothing wrong with it, but the tags were done in the XHTML style rather than HTML.</p>
<p>Now, way back when, I thought that XHTML was going to be the saviour of the web, and it was closely intertwined with the move away from table-layout to a more semantically correct layout. So I have coded a fair few sites using XHTML. In recent years, though, I have switched back to HTML. I have my reasons. And they are:</p>
<ol>
<li>IE does not support XHTML. It can render (modified) XHTML code served as HTML, but that&#8217;s not the point, is it? If you add the proper <code>&lt;![CDATA[</code> sections, you then have to comment them back out. That seems to be a waste of time and of bandwidth to me. The XML prologue that should appear at the start of the file has to be removed, too or else IE6 chokes on it. Yes, I still have to support IE6.</li>
<li>In the case of an error in the markup, properly-served XHTML completely fails. Now, this can be a benefit, as it will show the error up during testing and force you to output well-formed XHTML, but I&#8217;m not sure I trust all the JavaScript based editors that many users use to input content with to output flawless code every time.</li>
<li>The JavaScript <code>document.write</code> cannot be used. Adding elements using DOM methods is better, yes, but sometimes a quick hack is what&#8217;s needed, or code from an external source (like Google Analytics, for example) uses it.</li>
</ol>
<p>I expect things to change on the code front as HTML 5 becomes more supported and as I start to integrate its code into my sites. It might mean that the move to XHTML starts to make more sense than it does to me right now. It&#8217;s something I will keep reassessing, and if I read a convincing enough argument to change then I will.</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/web-development/why-i-dont-use-xhtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off topic: King of Shaves&#8217; new &#8216;Azor&#8217; is a winner</title>
		<link>http://antanova.com/blog/off-topic/off-topic-king-of-shaves-new-azor-is-a-winner</link>
		<comments>http://antanova.com/blog/off-topic/off-topic-king-of-shaves-new-azor-is-a-winner#comments</comments>
		<pubDate>Mon, 02 Nov 2009 15:41:27 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Off-topic]]></category>
		<category><![CDATA[grooming]]></category>
		<category><![CDATA[shopping]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=397</guid>
		<description><![CDATA[Off topic: I tried out the King of Shaves 'Azor' and it was super-dooper.]]></description>
			<content:encoded><![CDATA[<p>Although this is nothing to do with web design, I keep feeling the smoothness of my skin after shaving and thinking &#8216;I&#8217;ll put this on my blog.&#8217; So here it is.</p>
<p>I was in the market for more of those expensive razor cartridges &#8211; you know the kind, Gilette Mach 3, or Wilkinson Quattro Titanium, that sort of thing. So I was looking in Boots and despairing of the cost of de-hairing my face, when I saw the King of Shaves &#8216;Azor&#8217; on the shelf there with the others. The price was in the same region as the others, a little cheaper perhaps. It had awards from Which? and some men&#8217;s magazine, so I thought I&#8217;d give it a go.</p>
<p>It&#8217;s great: it gets the skin smooth like any new razor, but is easier to use because it&#8217;s very light and quite flexible. Also, the blades seem to last for an age. So I&#8217;ll be getting more of those in future. Order one yourself:</p>
<p><a id="static_txt_preview" href="http://www.amazon.co.uk/gp/product/B001JSGBSM?ie=UTF8&amp;tag=antanovablog-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=B001JSGBSM">King of Shaves Azor Hybrid Synergy System Razor &#8211; Warp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/off-topic/off-topic-king-of-shaves-new-azor-is-a-winner/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The power of Twitter</title>
		<link>http://antanova.com/blog/blogging/the-power-of-twitter</link>
		<comments>http://antanova.com/blog/blogging/the-power-of-twitter#comments</comments>
		<pubDate>Fri, 16 Oct 2009 17:09:45 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=384</guid>
		<description><![CDATA[The Guardian thought they had been gagged. That was, until Twitter's users got involved.]]></description>
			<content:encoded><![CDATA[<p>The other day, the <a href="http://www.guardian.co.uk/media/2009/oct/12/guardian-gagged-from-reporting-parliament">Guardian reported that it had been gagged</a> from reporting on a parliamentary question, to be asked in the commons. It couldn&#8217;t say who had issued the &#8220;gagging order&#8221; (a.k.a. a &#8220;super injunction&#8221;), why it had been issued, and could only sneak out the fact that it existed because it was about parliamentary business.</p>
<p>This went out on a few <a href="http://boingboing.net">high profile blogs</a>, and spread from there. Eventually, after a few hours, the reason for the gag came out &#8211; I read about it first on Twitter. It was about a company that had dumped toxic waste off the Ivory Coast. Within hours, the name of the company and their solicitors (Trafigura and Carter-Ruck, respectively) were some of the most used words on Twitter. The culmination of all this attention was that Carter-Ruck withdrew their injunction, because of the huge publicity it was bringing to the story.</p>
<p>And that is the story of how Twitter broke a super-injunction. You can read a more full story <a href="http://www.guardian.co.uk/media/pda/2009/oct/13/twitter-online-outcry-guardian-trafigura">here with a very nice visualisation of the story as it developed</a>. Not bad considering most of the stuff on Twitter is about what some stranger&#8217;s cat&#8217;s had for dinner.</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/blogging/the-power-of-twitter/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>At long, long last&#8230;</title>
		<link>http://antanova.com/blog/blogging/at-long-long-last</link>
		<comments>http://antanova.com/blog/blogging/at-long-long-last#comments</comments>
		<pubDate>Mon, 05 Oct 2009 18:59:59 +0000</pubDate>
		<dc:creator>Jason C</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[my site]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://antanova.com/?p=300</guid>
		<description><![CDATA[After a massive delay beavering away on other website projects, at last I've united my blog and website under one domain.]]></description>
			<content:encoded><![CDATA[<p>It was terrible: the waiting. I created a theme for <a href="http://wordpress.org">WordPress</a>, so that I could post to my blog and edit my site content easily, but the finishing touches needed doing. Then, a huge load of work kept me off the blog for months at a time, and gradually creating a new website for myself drifted further and further to the back of my mind.</p>
<p>Until now, that is. A short quiet spell has enabled me to get back on it, and although there are <em>still</em> finishing touches to be done, screenshots to be taken, projects to be added, at last I can make this new site live and consign the old &#8211; and very out of date &#8211; one to the great recycling bin in the sky.</p>
<p>The main thing I&#8217;m looking forward to with this new site is having my blog back online, but for the purposes of attracting new business I&#8217;m also looking forward to having recent work up on here and keeping it up to date. I&#8217;ve created a <a href="/projects">projects</a> section to hold all that, and I&#8217;m hoping that at last potential new clients will not be put off by the very few examples of work I had on here before. Though, of course, right now there are even fewer.</p>
]]></content:encoded>
			<wfw:commentRss>http://antanova.com/blog/blogging/at-long-long-last/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

