<?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>James Pearce &#187; Projects</title>
	<atom:link href="http://tripleodeon.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://tripleodeon.com</link>
	<description>Living the mobile dream</description>
	<lastBuildDate>Fri, 02 Dec 2011 14:11:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<cloud domain='tripleodeon.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>tinySrc is now part of Sencha</title>
		<link>http://tripleodeon.com/2010/12/tinysrc-is-now-part-of-sencha/</link>
		<comments>http://tripleodeon.com/2010/12/tinysrc-is-now-part-of-sencha/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 00:58:37 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sencha]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=570</guid>
		<description><![CDATA[I&#8217;m extremely pleased to announce that one of my projects, tinySrc, has become part of Sencha, alongside such awesome projects as Raphaël JS, jQTouch, Connect, and InfoVis &#8211; as well, of course, as the company&#8217;s core products like Ext JS and the revolutionary mobile framework Sencha Touch. tinySrc has been going from strength to strength over the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m extremely pleased to announce that one of my projects, <a href="http://tinysrc.net/">tinySrc</a>, has become part of <a href="http://sencha.com">Sencha</a>, alongside such awesome projects as <a href="http://raphaeljs.com/">Raphaël JS</a>, <a href="http://jqtouch.com/">jQTouch</a>, <a href="https://github.com/senchalabs/Connect">Connect</a>, and <a href="http://thejit.org/">InfoVis</a> &#8211; as well, of course, as the company&#8217;s core products like <a href="http://www.sencha.com/products/js/">Ext JS</a> and the revolutionary mobile framework <a href="http://www.sencha.com/products/touch/">Sencha Touch</a>.<br />
<span id="more-570"></span><br />
tinySrc has been going from strength to strength over the last 18 months. I think its underlying growth is a reflection of the huge interest in developing for the mobile medium. Mobile web and app developers quickly realize they need to make sure that their graphical experience is correctly formatted for a wide range of screen-sizes and form factors.</p>
<p>There are no intentions to change the API and the way in which the tinySrc runs, so you can continue to use it with confidence.</p>
<p>You&#8217;ll see lots of new cool features coming in the future though: the service has some exciting times ahead of it!</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2010/12/tinysrc-is-now-part-of-sencha/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modernizr on the server-side</title>
		<link>http://tripleodeon.com/2010/10/modernizr-on-the-server-side/</link>
		<comments>http://tripleodeon.com/2010/10/modernizr-on-the-server-side/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 15:25:00 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=537</guid>
		<description><![CDATA[The modernizr-server library is a way to bring Modernizr browser data to your server scripting environment. There are a host of emerging techniques for adjusting web content to suit different types of browsers. The current vogue seems to be to do as much of it as possible on the client-side: media queries, progressive enhancement, adding [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href='http://github.com/jamesgpearce/modernizr-server'>modernizr-server</a> library is a way to bring Modernizr browser data to your server scripting environment.<br />
<span id="more-537"></span><br />
There are a host of emerging techniques for adjusting web content to suit different types of browsers.</p>
<p>The current vogue seems to be to do as much of it as possible on the client-side: media queries, progressive enhancement, adding CSS body classes, and so on.</p>
<p>These are all cool, and hit a resonance with those who deal entirely with the front-end of a web site, and who prefer CSS (and a little Javascript) to Python, Ruby, PHP and the like.</p>
<p>In my opinion, this approach won&#8217;t <i>always</i> cut it. I&#8217;ve already <a href='/2010/10/not-a-mobile-web-merely-a-320px-wide-one/'>pointed out</a> that the users of radically different devices might want downright different things. Sometimes the differences between browsers are just too great to be able to deal with once the page has reached the client. And dealing with structural changes to a site&#8217;s information architecture based on browser capabilities gets messy, fast.</p>
<p>(Imagine if my site had a conditional a &#8216;photo upload&#8217; feature that I wanted to place in the site&#8217;s menu for mobile devices that supported it. Do I have to feature test &lt;input type=&#8217;file&#8217;&gt; on every page, simply so I can add or remove nodes from the menu&#8217;s DOM? Ugh.)</p>
<p>So anyway, sometimes it&#8217;s far better to have had the server emit the best content in the first place &#8211; or at least as close as possible.</p>
<p>With this in mind, I&#8217;ve a new project called <a href='http://github.com/jamesgpearce/modernizr-server'>modernizr-server</a>.</p>
<p><a href='http://modernizr.com'>Modernizr</a> itself is a great way to find out about your user&#8217;s browser capabilities. However, you can only access its API on the browser itself, which means you can&#8217;t easily benefit from knowing about browser capabilities in your server logic.</p>
<p>To address this, the modernizr-server library is a way to bring Modernizr browser data to your server scripting environment. For example, in PHP:</p>
<pre><code>&lt;?php

    include('modernizr-server.php');

    print 'The server knows:';
    foreach($modernizr as $feature=&gt;$value) {
        print "&lt;br/&gt; $feature: "; print_r($value);
    }

?&gt;

The server knows:
canvas: 1
canvastext: 1
geolocation: 1
crosswindowmessaging: 1
websqldatabase: 1
indexeddb: 0
hashchange: 1
...</code></pre>
<p>Exactly the same feature detection is available through this (PHP) API on the server as is available through the (Javascript) API on the client.</p>
<p>Currently, there is only a PHP implementation of the server-side API, but other languages would be easy enough. Stay tuned to the project for more (and let me know what might be a priority, or fork!).</p>
<p>For instructions on how to use, and information about how it works, you&#8217;re encouraged to consult the <a href='http://github.com/jamesgpearce/modernizr-server/blob/master/README.md'>readme</a>. Also this is a young project, so please use in high-traffic production environments with due caution.</p>
<p>Your feedback is welcome! Hope it&#8217;s helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2010/10/modernizr-on-the-server-side/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>monomi: mobile middleware for node.js</title>
		<link>http://tripleodeon.com/2010/10/monomi-mobile-middleware-for-node-js/</link>
		<comments>http://tripleodeon.com/2010/10/monomi-mobile-middleware-for-node-js/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 18:56:47 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=483</guid>
		<description><![CDATA[monomi is node.js middleware that provides tools for handling mobile (and other types of) browsers. It relies on the excellent Connect layer, and is easy to install with npm. Currently, monomi analyzes incoming HTTP requests to detect which type of browser they come from. Default values are &#8216;desktop&#8217;, &#8216;tablet&#8217;, &#8216;touch&#8217;, and &#8216;mobile&#8217; (meaning non-touch), and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://github.com/jamesgpearce/monomi">monomi</a> is node.js middleware that provides tools for handling mobile (and other types of) browsers.<br />
<span id="more-483"></span><br />
It relies on the excellent <a href="http://github.com/senchalabs/connect">Connect</a> layer, and is easy to install with <a href="http://github.com/isaacs/npm">npm</a>.</p>
<p>Currently, monomi analyzes incoming HTTP requests to detect which type of browser they come from. Default values are &#8216;desktop&#8217;, &#8216;tablet&#8217;, &#8216;touch&#8217;, and &#8216;mobile&#8217; (meaning non-touch), and the type is put into the request.monomi.browserType property.</p>
<p>The order of preference for the detection, as well as the algorithms used, can all be optionally overridden when the middleware is instantiated.</p>
<p>It&#8217;s early days for the project&#8230; I have plans to allow the middleware to adapt the outgoing content to be appropriate for the detected device &#8211; although this needs to be sensitive to the asynchronous philosophy of node.js</p>
<p>Try it, fork it, experiment, have fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2010/10/monomi-mobile-middleware-for-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WhitherApps</title>
		<link>http://tripleodeon.com/2010/08/whitherapps/</link>
		<comments>http://tripleodeon.com/2010/08/whitherapps/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 03:10:20 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=363</guid>
		<description><![CDATA[Why spend your life recompiling native client apps when you have HTML5 and the mighty mobile web at your disposal? WhitherApps sets out to debunk some contemporary mobile myths. WhitherApps is a bandwagon-busting experiment. I believe there are far too many native client apps which could have been far better written as mobile web apps. [...]]]></description>
			<content:encoded><![CDATA[<p>Why spend your life recompiling native client apps when you have HTML5 and the mighty mobile web at your disposal? <a href="http://whitherapps.com">WhitherApps</a> sets out to debunk some contemporary mobile myths.<br />
<span id="more-363"></span><br />
WhitherApps is a bandwagon-busting experiment. I believe there are  far too many native client apps which could have been far better written  as mobile web apps. What I&#8217;m trying to do with the project is take a few particularly obvious examples, apply a little reverse-engineering, and rewrite them, warts  and all, with web technologies.</p>
<p>I&#8217;m focussing on native client apps that are free to download. These  wouldn’t have suffered commercially had they been written this way in  the first place. Obviously, I’ll also focus on feasible genres of apps. No 3D games  or background apps, for example. To start with, informational media apps  (such as newspapers and broadcasters) will be in the spotlight.</p>
<p>But otherwise, I may not need to pull too many punches. Offline  access? Through the wonders of HTML5, that should be OK. Native device  API access? Well, BONDI and proprietary libraries permitting, I’ll have  a go – and there’s always PhoneGap too.</p>
<p>Each post on the site will be a walkthrough (or part of a walkhrough)  of the process. As I get my hands dirty, from the protocol-sniffing  to the pixel-jiggling, you can follow the steps I took.</p>
<p>Stay tuned and wish me luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2010/08/whitherapps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Mobile Pack v1.1</title>
		<link>http://tripleodeon.com/2009/07/wordpress-mobile-pack-v11/</link>
		<comments>http://tripleodeon.com/2009/07/wordpress-mobile-pack-v11/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 10:14:09 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dotMobi]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=322</guid>
		<description><![CDATA[The dotMobi WordPress Mobile Pack is a complete toolkit to help mobilize your WordPress site and blog. We just launched v1.1, compatible with the latest version of WordPress. Download it, read the changelog, read about the features in full, or even join the team. The plugin includes a mobile switcher to select themes based on [...]]]></description>
			<content:encoded><![CDATA[<p>The dotMobi WordPress Mobile Pack is a complete toolkit to help mobilize your WordPress site and blog.</p>
<p>We just launched v1.1, compatible with the latest version of WordPress. <a href="http://wordpress.org/extend/plugins/wordpress-mobile-pack/">Download it</a>, read <a href="http://www.assembla.com/spaces/wordpress-mobile-pack/milestones/95962">the changelog</a>, read about the <a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack">features in full</a>, or even join <a href="http://www.assembla.com/spaces/wordpress-mobile-pack/team">the team</a>.<br />
<span id="more-322"></span></p>
<p>The plugin includes a mobile switcher to select themes based on the type of user that is visiting the site, a selection of mobile themes, extra widgets, device adaptation and a mobile administration panel to allow users to edit the site or write new posts when out and about.</p>
<p>Features include:</p>
<ul>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.1">Mobile switcher</a> to detect mobile visitors and provide an appropriate experience</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.2">Base mobile theme</a> for quick-and-easy XHTML-MP compliance</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.3">Extended mobile themes</a> so you can unleash your mobile creativity</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.4">Transcoding and device adaptation</a> to optimise the mobile experience</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.5">DeviceAtlas integration</a> for world-class adaptation</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.6">Mobile admin panel</a> for when posts can&#8217;t wait</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.7">Mobile ad widget</a> to make you some money</li>
<li><a href="http://mobiforge.com/running/story/the-dotmobi-wordpress-mobile-pack#p2.8">Barcode widget</a> to help users bookmark your blog</li>
</ul>
<p>I have a lot of fun writing this plugin and there&#8217;s a bunch of cool ideas we have for the future. Check out the <a href="http://www.assembla.com/spaces/wordpress-mobile-pack">Assembla project</a> to see the work as it happens &#8211; and maybe toss us some new ideas too.</p>
<p>It&#8217;s always a work in progress, but thousands of users seem happy enough so far. See what you think&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/07/wordpress-mobile-pack-v11/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New blog design &amp; apologies</title>
		<link>http://tripleodeon.com/2009/03/new-blog-design-and-apologies/</link>
		<comments>http://tripleodeon.com/2009/03/new-blog-design-and-apologies/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 23:05:02 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=289</guid>
		<description><![CDATA[Welcome to my new blog theme. It includes a pseudo-portfolio for my various mobile activities in 2009. I had to generate some new resumé-style posts and they probably all showed up in your feeds. Sorry. If you&#8217;re on the new site, I hope you like it. If you&#8217;re reading this on RSS, maybe it appeared [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to my new blog theme. It includes a pseudo-portfolio for my various mobile activities in 2009.</p>
<p>I had to generate some new resumé-style posts and they probably all showed up in your feeds. Sorry.</p>
<p>If you&#8217;re on the new site, I hope you like it.<br />
<span id="more-289"></span><br />
If you&#8217;re reading this on RSS, maybe it appeared above.</p>
<p>Well, now we&#8217;re back on track.</p>
<p>The site now serves as much as a business card as it does a blog&#8230; but I will try to put the occasional post up to remind you that I&#8217;m still alive. Well, outside of <a href="http://twitter.com/jamespearce">Twitter</a> and <a href="http://jajajeev.com">JaJaJeEv</a> anyway.</p>
<p>By the way, I&#8217;m quite please with the favicon.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/03/new-blog-design-and-apologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile &amp; Web Sites</title>
		<link>http://tripleodeon.com/2009/03/mobile-web-sites/</link>
		<comments>http://tripleodeon.com/2009/03/mobile-web-sites/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 22:02:21 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=266</guid>
		<description><![CDATA[I help run the Hollywood Walk of Fame web sites for desktop &#38; mobile: HWOF.com &#38; HWOF.mobi. I run metajam.mobi. With 14m page-views per month, it&#8217;s a surprisingly popular mobile web site. Also launching sometime this year: vumi.mobi&#8230;]]></description>
			<content:encoded><![CDATA[<p>I help run the Hollywood Walk of Fame web sites for desktop &amp; mobile: <a href='http://hwof.com'>HWOF.com</a> &amp; <a href='http://hwof.mobi'>HWOF.mobi</a>.</p>
<p>I run <a href='http://metajam.mobi'>metajam.mobi</a>. With 14m page-views per month, it&#8217;s a surprisingly popular mobile web site.</p>
<p>Also launching sometime this year: vumi.mobi&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/03/mobile-web-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Tools</title>
		<link>http://tripleodeon.com/2009/03/developer-tools/</link>
		<comments>http://tripleodeon.com/2009/03/developer-tools/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 21:39:42 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=256</guid>
		<description><![CDATA[I co-wrote dotMobi&#8217;s DeviceAtlas with Andrea Trasatti, and created the interactive Data Explorer. I led the ready.mobi team, and have a mobile WordPress plugin ready for release soon. I just launched an image resizing service.]]></description>
			<content:encoded><![CDATA[<p>I co-wrote dotMobi&#8217;s <a href="http://deviceatlas.com">DeviceAtlas</a> with <a href="http://blog.trasatti.it/">Andrea Trasatti</a>, and created the interactive <a href="http://deviceatlas.com/explorer">Data Explorer</a>.</p>
<p>I led the <a href='http://ready.mobi'>ready.mobi</a> team, and have a mobile WordPress plugin ready for release soon. I just launched an <a href='http://tinysrc.mobi'>image resizing service</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/03/developer-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development Communities</title>
		<link>http://tripleodeon.com/2009/03/development-communities/</link>
		<comments>http://tripleodeon.com/2009/03/development-communities/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 21:05:04 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=247</guid>
		<description><![CDATA[I like to try to help my fellow mobile developers. You may vaguely remember WAPtastic from 1999. Then AnywhereYouGo.com. Then Argogroup&#8217;s DevZone. But the mighty mobiForge (neé dev.mobi) was also one of my babies, and is still going strong.]]></description>
			<content:encoded><![CDATA[<p>I like to try to help my fellow mobile developers.</p>
<p>You may vaguely remember WAPtastic from 1999. Then AnywhereYouGo.com. Then Argogroup&#8217;s DevZone.</p>
<p>But the mighty <a href='mobiForge'>mobiForge</a> (neé dev.mobi) was also one of my babies, and is still going strong.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/03/development-communities/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Data into Information</title>
		<link>http://tripleodeon.com/2009/03/data-into-information/</link>
		<comments>http://tripleodeon.com/2009/03/data-into-information/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 14:15:33 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://tripleodeon.com/?p=225</guid>
		<description><![CDATA[I like to use data and graphics to tell stories. For Argogroup, I built BoxOffice, a reporting and analysis platform for large-scale monitoring systems. The dotMobi KPI platform uses registry data to track domain trends. And I think I have another one in me.]]></description>
			<content:encoded><![CDATA[<p>I like to use data and graphics to tell stories.</p>
<p>For Argogroup, I built BoxOffice, a reporting and analysis platform for large-scale monitoring systems.</p>
<p>The dotMobi KPI platform uses registry data to track domain trends. And I think I have another one in me.</p>
]]></content:encoded>
			<wfw:commentRss>http://tripleodeon.com/2009/03/data-into-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

