<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Steve Workman</title>
	
	<link>http://www.steveworkman.com</link>
	<description>I've been designing and building web sites since 2003. This is my personal site. You'll find my work, insight and ramblings within</description>
	<lastBuildDate>Thu, 15 Dec 2011 16:41:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SteveWorkman" /><feedburner:info uri="steveworkman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/SteveWorkman" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FSteveWorkman" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>An Evening with Sprintly</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/xVg_AUFx9lU/</link>
		<comments>http://www.steveworkman.com/projects/2011/an-evening-with-sprintly/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 16:41:50 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Project trackers]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Sprint.ly]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=900</guid>
		<description><![CDATA[Last night, I was lucky enough to meet Joe Stump, former Lead Architect at Digg and founder of SimpleGeo, who sat down with 7 developers near Old Street and showed us his latest creation: Sprintly. Here&#8217;s my notes from the talk. Sprintly was born out of frustration in how products are made. Joe is a [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2011/end-of-an-era/' rel='bookmark' title='End of an era'>End of an era</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2006/v303-and-the-business/' rel='bookmark' title='v3.03 and The Business'>v3.03 and The Business</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2006/v304-and-upcoming-development/' rel='bookmark' title='v3.04 and upcoming development'>v3.04 and upcoming development</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Last night, I was lucky enough to meet <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0dS5tcC8=">Joe Stump</a>, former Lead Architect at Digg and founder of SimpleGeo, who sat down with 7 developers near Old Street and showed us his latest creation: <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NwcmludC5seQ==">Sprintly</a>. Here&#8217;s my notes from the talk.</p>
<p><iframe src="http://player.vimeo.com/video/33085361?title=0&#038;;byline=0&#038;;portrait=0" frameborder="0" width="400" height="225"></iframe></p>
<p>Sprintly was born out of frustration in how products are made. Joe is a business major, not CompSci like many Silicon Valley successes. The guiding principle behind Sprintly is that product is greater than the process.</p>
<p><strong>No time like the present</strong><br />
The first major difference to most agile tracking tools is that there&#8217;s no concept of time in Sprintly. In SCRUM, we use points, but that&#8217;s still tied back to a notion of time (where it should be effort+complexity+doubt), so it&#8217;s still a developer lying to themselves. Sprintly works with the notion of features, and those features will ship when they&#8217;re done.</p>
<p>Sprintly has Stories, Tasks, Tests and Bugs. Stories are your general user stories, Tasks are any other tasks, Tests are for developers to write tests for their code and Bugs are bugs! Any of these can be tagged with anything. A lot of teams tag with &#8220;a release&#8221; (1.0, Cupcake, whatever) which is fine, but the release will happen when stories are done or when the team decides to release something. Sprintly isn&#8217;t there to enforce the process, just help you along the way.</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEyL3NwcmludGx5LnBuZw=="><img class="aligncenter size-full wp-image-906" title="sprintly" src="http://www.steveworkman.com/wp-content/uploads/2011/12/sprintly.png" alt="" width="677" height="381" /></a></p>
<p><strong>The holy grail for &#8220;older&#8221; clients: e-mail integration</strong><br />
Everyone is allowed to be part of the process in adding stories to the backlog, favouriting a story or just looking around. There&#8217;s e-mail integration whereby emailing a specific Sprint.ly address and cc&#8217;ing a developer will create a task assigned to that developer with the content and attachments of that email. The developer can then respond via email and that will be added to the conversation. It&#8217;s awesome. I can see my clients getting involved with the agile process through this even though they may not be aware of it, helping manage the admin overhead of ticketing through e-mails. Long-term there will be ZenDesk support and potentially others depending upon &#8220;how much their API make me want to kill myself&#8221;.</p>
<p>Tasks can be sorted easily with the quick-sort bar which shows in-progress and backlog items. These are<strong><em> integrated with GitHub</em></strong>, but it can work with any SCM that has a post-commit hook (SVN,Perforce etc), and even those SCMs behind a firewall. Any open bugs can be modified with your commit messages, even closing or marking multiple tickets as fixed.</p>
<p><strong>Dashboards for those up top</strong><br />
There&#8217;s a dashboard with standard drag &amp; drop Kanban board on it. It&#8217;s a bit bare at the moment but this will be much improved in the future, including tools that allow managers to estimate better and identify overloaded developers. There&#8217;ll be a read/write API coming in January so developers will be able to do our own dashboards for stakeholders etc if we don&#8217;t want them to have access. Eventually Sprintly will give you daily digest emails and better integration with email when tasks are closed/broken.</p>
<p>In comparison to others, it&#8217;s got its own niche: &#8220;Jira is like bringing a thermonuclear warhead to a knife fight&#8221;, you only use 1% of it at most. Trello is similar but isn&#8217;t just for software developers, it could be used for anything so won&#8217;t be as useful in the long term.</p>
<p>Sprintly is currently getting loads of great feedback from users with around 35% retention rate for daily task usage creation, which is excellent for such a new product. You just have to search Twitter for <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS9zZWFyY2gvc3ByaW50bHklMjBsb3Zl">Sprintly love</a> to see how well they&#8217;re doing.</p>
<p><strong>Making money right now, and opening beta in 2012</strong><br />
Joe talked about how important he thought it was to be making money straight away, rather than having profit as &#8220;an afterthought&#8221;. So, from January 1st 2012, Sprintly will be $9/month/seat (which is cheap compared to competitors) and it will enter open beta shortly after that.</p>
<p>I&#8217;m really looking forward to using <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NwcmludC5seQ==">Sprintly</a> in anger at the start of next year. If you want to be part of it, get yourself on the waiting list. Thanks again to Joe for talking to us and I can&#8217;t wait to start playing.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=900" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2011/end-of-an-era/' rel='bookmark' title='End of an era'>End of an era</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2006/v303-and-the-business/' rel='bookmark' title='v3.03 and The Business'>v3.03 and The Business</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2006/v304-and-upcoming-development/' rel='bookmark' title='v3.04 and upcoming development'>v3.04 and upcoming development</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/4FwJNfj0SpUJTdM8k1tI_zNCi_8/0/da"><img src="http://feedads.g.doubleclick.net/~a/4FwJNfj0SpUJTdM8k1tI_zNCi_8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4FwJNfj0SpUJTdM8k1tI_zNCi_8/1/da"><img src="http://feedads.g.doubleclick.net/~a/4FwJNfj0SpUJTdM8k1tI_zNCi_8/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/projects/2011/an-evening-with-sprintly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/projects/2011/an-evening-with-sprintly/</feedburner:origLink></item>
		<item>
		<title>Improving Javascript XML Node Finding Performance by 2000%</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/IImfTY_NckQ/</link>
		<comments>http://www.steveworkman.com/html5-2/javascript/2011/improving-javascript-xml-node-finding-performance-by-2000/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 12:59:06 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jsPerf]]></category>
		<category><![CDATA[SPServices]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=878</guid>
		<description><![CDATA[.code{font-family:Consolas,Courier,Serif; font-size:0.9em;} In my work, I&#8217;m parsing web services all of the time. Most of the time, they&#8217;re XML, which does not make the best use of bandwidth/CPU time (compared to JSON), however, if it&#8217;s all that you&#8217;re given then you can certainly get by. I&#8217;ve been looking into ways to speed up the XML [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/offtopic/2010/is-wordpress-putting-whitespace-in-your-xml-heres-how-to-fix-it/' rel='bookmark' title='Is WordPress putting whitespace in your XML? Here&#8217;s how to fix it'>Is WordPress putting whitespace in your XML? Here&#8217;s how to fix it</a></li>
<li><a href='http://www.steveworkman.com/html5-2/javascript/2011/javascript-fun-at-london-web-standards-lwsfun/' rel='bookmark' title='Javascript Fun at London Web Standards #lwsfun'>Javascript Fun at London Web Standards #lwsfun</a></li>
<li><a href='http://www.steveworkman.com/web-design/browsers/2008/browser-wars-the-slickspeed-test/' rel='bookmark' title='Browser Wars: The SlickSpeed Test'>Browser Wars: The SlickSpeed Test</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<style>.code{font-family:Consolas,Courier,Serif; font-size:0.9em;}</style>
<p>In my work, I&#8217;m parsing web services all of the time. Most of the time, they&#8217;re XML, which does not make the best use of bandwidth/CPU time (compared to JSON), however, if it&#8217;s all that you&#8217;re given then you can certainly get by. I&#8217;ve been looking into ways to speed up the XML document traversal in with jQuery after the current best practice method was removed.</p>
<p>The basic way to find certain nodes in an XML web service is to use the <span class="code">.find()</span> method. This is used heavily by the <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Nwc2VydmljZXMuY29kZXBsZXguY29tLw==">SPServices</a> jQuery helper (which is, in general, a great library).</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>xData.<span style="color: #660066;">responseXML</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;[nodeName='z:row']&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">// Do stuff</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>That&#8217;s absolutely fine &#8211; it&#8217;s going to find the attribute nodeName with a value of <span class="code">z:row</span>. However, <strong>since jQuery 1.7, this method does not work</strong>. I <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTAzNzc=">raised this regression</a> in the jQuery bug tracker and was encouraged to find a solution; another selector that worked in all browsers. Unfortunately, at the time I couldn&#8217;t come up with anything better than this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>xData.<span style="color: #660066;">responseXML</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;z<span style="color: #000099; font-weight: bold;">\\</span>:row, row&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">// Do stuff</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The <span class="code">&#8220;z\\:row&#8221;</span> selector works in IE and Firefox, and the <span class="code">&#8220;row&#8221;</span> selector works in Chrome and Safari (I&#8217;m unable to test in Opera here, sorry). This was flagged as the solution to the problem and they wouldn&#8217;t be making any fixes to the jQuery core.</p>
<p>After a few weeks of using this method, I noticed that the site had been slowing down, especially in IE, and I thought this new selector was the cause. So, I looked into the performance numbers using <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzcGVyZi5jb20=">jsPerf</a> and I <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTA3MjA=">raised a bug</a> too. My first test was to see what the current solution was doing, and whether jQuery 1.7 had made things worse.<br />
Test case: <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzcGVyZi5jb20vbm9kZS12cy1kb3VibGUtc2VsZWN0LzQ=">http://jsperf.com/node-vs-double-select/4</a></p>
<div id="attachment_880" class="wp-caption aligncenter" style="width: 699px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzExL0lFLXBlcmZvcm1hbmNlLWxvc3MtanExLTcucG5n"><img class="size-full wp-image-880" title="IE performance loss jq1-7" src="http://www.steveworkman.com/wp-content/uploads/2011/11/IE-performance-loss-jq1-7.png" alt="http://jsperf.com/node-vs-double-select/4" width="689" height="494" /></a><p class="wp-caption-text"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzcGVyZi5jb20vbm9kZS12cy1kb3VibGUtc2VsZWN0LzQ=">http://jsperf.com/node-vs-double-select/4</a></p></div>
<p>So, performance in Chrome is identical for each of the selectors (and it&#8217;s the same in Firefox and Safari) but IE drops nearly half of its operations because it has to perform that second selector.</p>
<p>It&#8217;s still not very high performance though, and so I looked for other solutions.</p>
<p>Dmethvin suggested:</p>
<blockquote><p>Did you try the custom plugin in the ticket? If you&#8217;re having performance issues that should be much faster.</p></blockquote>
<p>The plugin he&#8217;s referring to is this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">jQuery.<span style="color: #660066;">fn</span>.<span style="color: #660066;">filterNode</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">nodeName</span> <span style="color: #339933;">===</span> <span style="color: #000066;">name</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This filters content by their nodeName and compares it against the name that you gave it. The issue with this is that <span class="code">.filter()</span> does not traverse down the tree, staying at the level of the set of objects that it was given. Therefore, a quick solution was this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>xData.<span style="color: #660066;">responseXML</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filterNode</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'z:row'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">// Do stuff</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>jsPerf Test: <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzcGVyZi5jb20vbm9kZS12cy1kb3VibGUtc2VsZWN0LzE=">http://jsperf.com/node-vs-double-select/1</a></p>
<a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzExL2RlZXAtY2hpbGQtZmlsdGVyLW5vZGUucG5n"><img class="size-full wp-image-881" title="Performance increase using filter plugin" src="http://www.steveworkman.com/wp-content/uploads/2011/11/deep-child-filter-node.png" alt="" width="783" height="495" /></a>
<p>Wow, that&#8217;s about 50 times faster. Even IE beats Chrome when doing this operation. The simple reason is that it&#8217;s got a smaller set of objects to go through and it&#8217;s comparing a single attribute rather than parsing the text of the XML to try and find the namespaced element.</p>
<p>Still, I wasn&#8217;t satisfied as in order to achieve that performance, I had to know how deep I was going to be going in order to retrieve the set. So, back to the bug and another suggestion by dmethvin:</p>
<blockquote><p>If you&#8217;re going that deep, use a filter function passed to <span class="code">.find()</span>. How does that fare?</p></blockquote>
<p>After a few attempts, a colleague of mine came up with this beauty:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">filterNode</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'*'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">filter</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">nodeName</span> <span style="color: #339933;">===</span> <span style="color: #000066;">name</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>jsPerf test: <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzcGVyZi5jb20vbm9kZS12cy1kb3VibGUtc2VsZWN0LzM=">http://jsperf.com/node-vs-double-select/3</a><br />
<a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzExL2ZpbmQtZmlsdGVyLnBuZw=="><img src="http://www.steveworkman.com/wp-content/uploads/2011/11/find-filter.png" alt="" title="find()-filter" width="716" height="784" class="size-full wp-image-883" /></a></p>
<p><strong>Using <span class="code">.find(&#8216;*&#8217;).filter()</span> increased performance to 200x faster than the original <span class="code">.find(&#8216;z:row&#8217;)</span> selector</strong></p>
<p>I mean, <em>wow</em>, that&#8217;s incredible. On the graph, those tiny little bits of colour are the original selectors, and those only 20% of the way up are the previous massive performance increase by using filter. It should also be noted that IE8 performance using this selector increased in jQuery 1.7 in comparison to when using jQuery 1.6.</p>
<p><em>Side-note: IE10&#8242;s javascript performance is almost equal to that of Google Chrome. In comparison, IE9 (not shown) is about half of that.</em></p>
<p>The reason for this massive increase is that it&#8217;s backed by native selectors. A <span class="code">.find(&#8216;*&#8217;)</span> will translate into <span class="code">element.querySelectorAll(&#8216;*&#8217;)</span> which is very fast when compared to doing 8 <span class="code">.children()</span> calls.</p>
<p><strong>Summary</strong><br />
Dealing with large amounts of data from web services needs to be fast. Using a simple <span class="code">.find()</span> on the node name no-longer works and alternatives have been investigated. The fastest method, using a short one-line plug-in, improves performance by up to 2000% compared to the old methodology.</p>
<p>I&#8217;ll be notifying the <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Nwc2VydmljZXMuY29kZXBsZXguY29tLw==">SPServices</a> group of this post, and hopefully they can improve the performance of their library.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=878" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/offtopic/2010/is-wordpress-putting-whitespace-in-your-xml-heres-how-to-fix-it/' rel='bookmark' title='Is WordPress putting whitespace in your XML? Here&#8217;s how to fix it'>Is WordPress putting whitespace in your XML? Here&#8217;s how to fix it</a></li>
<li><a href='http://www.steveworkman.com/html5-2/javascript/2011/javascript-fun-at-london-web-standards-lwsfun/' rel='bookmark' title='Javascript Fun at London Web Standards #lwsfun'>Javascript Fun at London Web Standards #lwsfun</a></li>
<li><a href='http://www.steveworkman.com/web-design/browsers/2008/browser-wars-the-slickspeed-test/' rel='bookmark' title='Browser Wars: The SlickSpeed Test'>Browser Wars: The SlickSpeed Test</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/MmpjSc8FHCRieg4KW5sCrRBYlb0/0/da"><img src="http://feedads.g.doubleclick.net/~a/MmpjSc8FHCRieg4KW5sCrRBYlb0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MmpjSc8FHCRieg4KW5sCrRBYlb0/1/da"><img src="http://feedads.g.doubleclick.net/~a/MmpjSc8FHCRieg4KW5sCrRBYlb0/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/javascript/2011/improving-javascript-xml-node-finding-performance-by-2000/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/javascript/2011/improving-javascript-xml-node-finding-performance-by-2000/</feedburner:origLink></item>
		<item>
		<title>Problems loading local fonts with font-family</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/HCLamZeJd1o/</link>
		<comments>http://www.steveworkman.com/html5-2/html5-css3/2011/problems-loading-local-fonts-with-font-family/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 16:25:21 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[ie10]]></category>
		<category><![CDATA[web fonts]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=852</guid>
		<description><![CDATA[I&#8217;m investigating a problem with loading locally installed fonts in Windows 7. It&#8217;s a weird one this, and it only seems to affect Firefox and IE9/10, or, those browsers that use DirectWrite. The problem This image shows the beautiful Univers font in four different browsers. Each of them are rendering the following CSS: #univers55, #univers55bold, #univers45, [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/offtopic/ramblings/2008/why-i-use-opera-a-case-for-the-browser-underdog/' rel='bookmark' title='Why I Use Opera &#8211; A case for the browser underdog'>Why I Use Opera &#8211; A case for the browser underdog</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2010/the-future-of-web-typography-with-richard-rutter/' rel='bookmark' title='The Future of Web Typography with Richard Rutter (LWS Future)'>The Future of Web Typography with Richard Rutter (LWS Future)</a></li>
<li><a href='http://www.steveworkman.com/web-design/2008/easy-semantic-forms-with-css/' rel='bookmark' title='Easy Semantic Forms with CSS'>Easy Semantic Forms with CSS</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m investigating a problem with loading locally installed fonts in Windows 7. It&#8217;s a weird one this, and it only seems to affect Firefox and IE9/10, or, those browsers that use DirectWrite.</p>
<p><strong>The problem</strong></p>
<div id="attachment_854" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1VuaXZlcnNUZXN0LTIucG5n"><img class="size-medium wp-image-854" title="Font rendering comparison" src="http://www.steveworkman.com/wp-content/uploads/2011/10/UniversTest-2-300x240.png" alt="Font rendering comparison" width="300" height="240" /></a><p class="wp-caption-text">Font rendering comparison: clockwise Chrome 16, IE10pp2, IE8, Firefox Aurora 9</p></div>
<p>This image shows the beautiful <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5saW5vdHlwZS5jb20vMTU2MC91bml2ZXJzLWZhbWlseS5odG1s">Univers font</a> in four different browsers. Each of them are rendering the following CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#univers55</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#univers55bold</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#univers45</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#univers45bold</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">3em</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#univers55</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;Univers 55&quot;</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#univers55bold</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;Univers 55&quot;</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#univers45</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;Univers 45 Light&quot;</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
<span style="color: #cc00cc;">#univers45bold</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;Univers 45 Light&quot;</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">serif</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Now, Univers 45 is a light-weight font, an should be a good 10 points lighter than Univers 55, you can see this in Chrome and IE8 (top-left and bottom right). In Firefox and IE10, Univers 45 looks heavier than Univers 55, and the bold version actually appears to be the same size. That just isn&#8217;t right. So I called for reinforcements: step up <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL3BhdWxyb3VnZXQ=">Paul Rouget</a> (Mozilla) and <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL3RoZWJlZWJz">Martin Beeby</a> (Microsoft).</p>
<p><strong>Further investigation</strong></p>
<p>I raised a <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MzY5">bug against Firefox</a> core with a <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzZmlkZGxlLm5ldC9DWVRkZC81Lw==">test case on jsfiddle</a> and got some good responses. Martin and Paul both asked:</p>
<blockquote><p>@steveworkman @paulrouget could you include the font-face code in the fiddle for Univers 55 and Univers 45 Light</p></blockquote>
<p>So, they thought it was something to do with the way I was including the font in the CSS. So, let&#8217;s put it in and see what happens:</p>
<div id="attachment_853" class="wp-caption aligncenter" style="width: 198px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL0ZvbnQtZmFjZS1ydWxlLWNvbXBhcmlzb24ucG5n"><img class="size-medium wp-image-853" title="Font-face rule comparison" src="http://www.steveworkman.com/wp-content/uploads/2011/10/Font-face-rule-comparison-188x300.png" alt="Font-face rule comparison" width="188" height="300" /></a><p class="wp-caption-text">Font rendering comparison with the font-face rule added</p></div>
<p>The rendering appears to have corrected itself. Univers 45 and 55 are now properly weighted in Chrome, IE10 and Firefox. So, what happened? Well,<a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MzY5I2M0"> Jonathan Kew</a> sheds a little light on the problem:</p>
<blockquote><p>Note that the @font-face rules shown in your second image are incorrect (e.g. &#8216;src: &#8220;Univers 55&#8243;&#8216; is invalid; did you mean &#8220;src: local(&#8216;Univers 55&#8242;)&#8221;?), and as a result you&#8217;re not getting Univers at all in some of those examples, you&#8217;re getting fallback to the default sans-serif font, probably Arial. Look at the shape of the &#8220;5&#8243;, for example.</p>
<p>Also note that under the DirectWrite model, font families are organized differently from the old GDI model. Family names like &#8220;Univers 45 Light&#8221; are not generally used; instead, all the faces belong to a single family, with distinct font-weight values. (But I haven&#8217;t examined the Univers family to see exactly how they&#8217;re organized.)</p></blockquote>
<p>So, yes, a little stumble over the &#8220;local(&#8216;font-name&#8217;);&#8221; issue, but otherwise it appears to be fine. The second part where he mentions that in Windows 7, font families are organised differently, and so may be under a different name intrigued me. So, I took a look:</p>
<div id="attachment_855" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1VuaXZlcnMtRm9udHMucG5n"><img class="size-medium wp-image-855" title="Univers Fonts" src="http://www.steveworkman.com/wp-content/uploads/2011/10/Univers-Fonts-300x212.png" alt="Univers Font Families" width="300" height="212" /></a><p class="wp-caption-text">Univers Font Families</p></div>
<div id="attachment_856" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1VuaXZlcnMtRm9udHMtNDUucG5n"><img class="size-medium wp-image-856" title="Univers Fonts-45" src="http://www.steveworkman.com/wp-content/uploads/2011/10/Univers-Fonts-45-300x212.png" alt="Univers 45 Fonts" width="300" height="212" /></a><p class="wp-caption-text">Univers 45 Fonts</p></div>
<div id="attachment_857" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1VuaXZlcnMtRm9udHMtNTUucG5n"><img class="size-medium wp-image-857" title="Univers Fonts-55" src="http://www.steveworkman.com/wp-content/uploads/2011/10/Univers-Fonts-55-300x212.png" alt="Univers 55 Fonts" width="300" height="212" /></a><p class="wp-caption-text">Univers 55 Fonts</p></div>
<p>So, this is where it goes a bit fuzzy. I can address the &#8220;Univers 45 Light&#8221; font directly through font-face, but I can&#8217;t access the &#8220;Univers 55 Normal&#8221; font, though I can access the whole font family by looking for &#8220;Univers 55&#8243;. That doesn&#8217;t feel right to me, and needs more investigation. Still, I can at least get it to render the font when using font-face. So, is that it? Bug closed?</p>
<p><strong>Why can&#8217;t I just use font-family?</strong></p>
<p>This is the question that I want answering, and Martin has kindly <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tLyMhL3RoZWJlZWJzL3N0YXR1cy8xMzA5ODA5NDkwMjk2ODcyOTY=">volunteered</a> to look into. Loading a local font through font-family should work in exactly the same way as @font-face and src: local(); &#8211; but in Firefox and IE 9/10 it&#8217;s not.</p>
<p>So, web community, do you know why this doesn&#8217;t work? Can you make it work with the <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzZmlkZGxlLm5ldC9DWVRkZC82Lw==">test case</a>? <strong>Please help!</strong> Leave a comment,<a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL3N0ZXZld29ya21hbg=="> send me a tweet</a> or <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzZmlkZGxlLm5ldC9DWVRkZC82Lw==">update the test case</a> and make it work!</p>
<p><strong>UPDATE 1<sup>st</sup> November 2011:</strong></p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk4MzY5I2M3"> Jonathan Kew has responded again</a> with some more words of wisdom for me:</p>
<blockquote><p>The @font-face and non-@font-face cases there aren&#8217;t comparable. When you say</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;Univers 55&quot;</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>without the use of @font-face, you&#8217;re requesting that _font family_, which may have multiple faces with different weights. What you&#8217;ll get when you use font-weight:bold along with this depends which faces have been grouped under that family name &#8211; which may well differ between GDI and DirectWrite environments. And if there&#8217;s no &#8220;bold&#8221; face in the family, then the browser will artificially &#8220;embolden&#8221; the text. (You can tell exactly which font is really being displayed using the &#8220;font-info&#8221; add-on, btw.) I suspect you might get a true bolder face in one case and synthetic bold in the other, but that depends very much on the structure of the font families you&#8217;re using.</p>
<p>In the @font-face case, you&#8217;re defining your own font families (independently of how the OS or the font designer organized things), and your CSS only assigns them a single (normal-weight) face each, which means that when your styles ask for font-weight:bold, you should be getting synthetic emboldening rather than a real face with a heavier weight.</p>
<p>To see what faces are supposed to be available within each family, look in the Windows Fonts folder &#8211; IIRC, this should reflect the DirectWrite organization of the fonts. Do you see separate &#8220;Univers 45&#8243; and &#8220;Univers 55&#8243; families? What faces exist in each?</p></blockquote>
<p>So, I looked back at the spec and re-engineered the @font-face CSS, and the non-font-face CSS. The non-font-face CSS was definitely wrong, so I updated that, but the @font-face CSS still wasn&#8217;t working. I looked at the font libraries as they are in Windows, and identified the following named structure:</p>
<ul>
<li>Univers 45</li>
</ul>
<ul>
<li>Univers 45 Light</li>
<li>Univers 45 Light Oblique</li>
</ul>
<li>Univers 55</li>
<ul>
<li>Univers 55 Black</li>
<li>Univers 55 Normal</li>
<li>Univers 55 Oblique</li>
</ul>
<p>Given the advice Jonathan gave me, the correct font-family should be &#8220;Univers 45&#8243; and &#8220;Univers 55&#8243;, and the correct fonts for @font-face should be &#8220;Univers 45 Light&#8221; and &#8220;Univers 55 Normal&#8221;. That gave the following results in Firefox and IE10</p>
<div id="attachment_874" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL2ZvbnQtZmFjZS5wbmc="><img class="size-medium wp-image-874" title="Font-face comparison IE10 and Firefox 9" src="http://www.steveworkman.com/wp-content/uploads/2011/10/font-face-300x138.png" alt="Font-face comparison IE10 and Firefox 9" width="300" height="138" /></a><p class="wp-caption-text">Firefox Aurora 9 (left) fails to find the font, IE10 pp2 (right) finds the font</p></div>
<p>IE is finding the correct font, but Firefox isn&#8217;t and is falling back to the serif font. I used the font finder plugin to look at which fonts were being used on the page, and the answer surprised me. When loading the Univers 55 font-family, the normal weight font is titled &#8220;Univers 55 Roman&#8221;, instead of &#8220;Univers 55 Normal&#8221;, and the bold version is &#8220;Univers 75 Black&#8221;, instead of &#8220;Univers 55 Black&#8221;.</p>
<p>So, I took a look at the system file properties for the font, and lo-and-behold, the detailed properties were different to the name of the font:</p>
<div id="attachment_875" class="wp-caption aligncenter" style="width: 182px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL3VuaXZlcnM1NS1ub3JtYWwucG5n"><img class="size-medium wp-image-875" title="univers55-normal" src="http://www.steveworkman.com/wp-content/uploads/2011/10/univers55-normal-172x300.png" alt="Univers 55 detail" width="172" height="300" /></a><p class="wp-caption-text">The file name says &quot;Normal&quot;, but the properties say &quot;Roman&quot;</p></div>
<p>I quickly looked to see if Firefox was looking for the title property instead of the file name, and I was right. If you&#8217;ve got the Univers font you can see the <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2pzZmlkZGxlLm5ldC9DWVRkZC85Lw==">jsFiddle test case</a> for this, otherwise, the final result is below:</p>
<div id="attachment_876" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL2ZvbnQtZmFjZTIucG5n"><img class="size-medium wp-image-876" title="font-face2" src="http://www.steveworkman.com/wp-content/uploads/2011/10/font-face2-300x138.png" alt="Corrected Font-Face" width="300" height="138" /></a><p class="wp-caption-text">With the extra @font-face rule, Aurora renders correctly like IE10</p></div>
<p>The @font-face code goes like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@font-face {</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> MyUnivers55<span style="color: #00AA00;">;</span>
	src<span style="color: #00AA00;">:</span> local<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'Univers 55 Roman'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> local<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'Univers 55 Normal'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@font-face {</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> MyUnivers55<span style="color: #00AA00;">;</span>
	src<span style="color: #00AA00;">:</span> local<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'Univers 75 Black'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> local<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'Univers 55 Black'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #a1a100;">@font-face {</span>
	<span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> MyUnivers45<span style="color: #00AA00;">;</span>
	src<span style="color: #00AA00;">:</span> local<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'Univers 45 Light'</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>It looks to me like <strong>IE and Firefox use different properties to identify fonts under Windows 7: IE looks at the name in the file system and Firefox looks at the Title attribute of the file.</strong></p>
<p>Amazingly, it looks like <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mb250cy8jc3JjLWRlc2M=">the spec doesn&#8217;t care which one is right, and advises you to include both</a> as different platforms use different naming conventions. What surprises me is that two browsers look for a different name on the same platform, as this could cause naming clashes; the Univers 55 Black is titled Univers 75 Black &#8211; so if there was also a Univers 75 Black titled Univers 85 Black, browsers are going to retrieve the wrong font.</p>
<p>So, Microsoft, Mozilla, please sort it out <img src='http://www.steveworkman.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Who is right?</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=852" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/offtopic/ramblings/2008/why-i-use-opera-a-case-for-the-browser-underdog/' rel='bookmark' title='Why I Use Opera &#8211; A case for the browser underdog'>Why I Use Opera &#8211; A case for the browser underdog</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2010/the-future-of-web-typography-with-richard-rutter/' rel='bookmark' title='The Future of Web Typography with Richard Rutter (LWS Future)'>The Future of Web Typography with Richard Rutter (LWS Future)</a></li>
<li><a href='http://www.steveworkman.com/web-design/2008/easy-semantic-forms-with-css/' rel='bookmark' title='Easy Semantic Forms with CSS'>Easy Semantic Forms with CSS</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/azmLpbS1XcIpIuIMi7DlzVfcIzc/0/da"><img src="http://feedads.g.doubleclick.net/~a/azmLpbS1XcIpIuIMi7DlzVfcIzc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/azmLpbS1XcIpIuIMi7DlzVfcIzc/1/da"><img src="http://feedads.g.doubleclick.net/~a/azmLpbS1XcIpIuIMi7DlzVfcIzc/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/html5-css3/2011/problems-loading-local-fonts-with-font-family/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/html5-css3/2011/problems-loading-local-fonts-with-font-family/</feedburner:origLink></item>
		<item>
		<title>So, you want an app?</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/HvnUJez4mUI/</link>
		<comments>http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 13:49:58 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[flow-chart]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[PA]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=836</guid>
		<description><![CDATA[Earlier this year, I was lucky enough to meet Josh Clark at FOWD. I&#8217;d been reading his articles about flagship apps and content first, and I was very keen to have a chat with him about a discussion I&#8217;d had with a client. I had been discussing which platform they should be targeting, and depending [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2011/handling-iphone-app-ideas/' rel='bookmark' title='Handling iPhone App Ideas'>Handling iPhone App Ideas</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2009/why-iphone-web-apps-are-still-worthwhile/' rel='bookmark' title='Why iPhone Web Apps are Still Worthwhile'>Why iPhone Web Apps are Still Worthwhile</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Earlier this year, I was lucky enough to meet <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2dsb2JhbG1veGll">Josh Clark</a> at FOWD. I&#8217;d been reading his articles about <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dsb2JhbG1veGllLmNvbS9ibG9nL21vYmlsZS13ZWItdnMtbmF0aXZlLnNodG1s">flagship apps</a> and content first, and I was very keen to have a chat with him about a discussion I&#8217;d had with a client. I had been discussing which platform they should be targeting, and depending upon who I was talking to at the client (and their opinions on the goals of the project) the decision on a choice of platform was different.</p>
<p>Josh, and his mobile vs native talk, positioned this decision as an &#8220;audience/content/budget&#8221; question, which matched the conversations I&#8217;d been having with my client. At the end of his talk I said to Josh, &#8220;this would make a great flow-chart, like that one that <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Nob3VsZGl3b3JrZm9yZnJlZS5jb20v">Jessica Hische did</a>!&#8221;, &#8220;Yeah, that&#8217;d be awesome!&#8221;, said Josh.</p>
<p>I&#8217;m very pleased to say, that after some delay, it&#8217;s ready for public consumption.</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wYWNvbnN1bHRpbmcuY29tL3NvLXlvdS13YW50LWFuLWFwcC8="><img class="aligncenter size-full wp-image-843" title="So, you want an app?" src="http://www.steveworkman.com/wp-content/uploads/2011/10/so-you-want-an-app-2.png" alt="So, you want an app?" width="439" height="480" /></a></p>
<p>With a lot of help from my <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wYWNvbnN1bHRpbmcuY29t">company</a> and colleagues <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2VkaGdvb3Nl">Ed Hartwell-Goose</a>,  <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2ZpbnZlbnRpbmc=">Fin Edridge</a> and <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL3NpbW9uZHJpbmc=">Simon Dring</a> we made an <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wYWNvbnN1bHRpbmcuY29tL3NvLXlvdS13YW50LWFuLWFwcC8=">interactive flow-chart</a> to guide our clients, other industry professionals and their clients through the minefield that is choosing the platform for your app. We called it, <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wYWNvbnN1bHRpbmcuY29tL3NvLXlvdS13YW50LWFuLWFwcC8=">&#8220;So, you want an app?&#8221;</a>.</p>
<p>It&#8217;s still a simplification of the whole process but, in researching it, three things became abundantly clear:</p>
<ol>
<li><strong>You <em>must</em> know your audience</strong> &#8211; there are no exceptions to this. People use different phones for very different things. Blackberries are used by teenagers for BBM and by corporations because of it&#8217;s security and low data usage; iPhones are very high-end consumer devices; and Android phones are thought of as being for very technically minded people, but they&#8217;re also entry-level smart phones. Picking a platform without knowing what your <em>content and its audience</em> is a recipe for disaster.</li>
<li><strong>Your content needs to be simple to access</strong> &#8211; all end-points on the flow-chart will need some form of content platform behind them to drive engagement, re-use and to keep the app up-to-date. If you&#8217;ve got an old CMS, you may have to build a light-weight web service to let your app access the content easily, quickly and efficiently. People use apps to get at content, and whether they&#8217;re a game or social media, your content is king.</li>
<li><strong>You cannot do this half-heartedly</strong> &#8211; and by that I mean you&#8217;ve got to have a decent budget. Also at FOWD, <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2NvbGRmdW1vbmtlaA==">Matt Gifford</a> was joking that the £50 website was now a £75 website; apps are suffering this problem. Apps are viewed as small, simple bits of functionality that you can knock-up in a weekend; this is simply not true. Apps are often full-sized websites with the added complexity of fitting the core content onto a tiny screen, but since they look small clients think they&#8217;re easy to make and do, and are therefore cheap. Stories in the news of <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5iYmMuY28udWsvbmV3c2JlYXQvMTIyMjQ2NzA=">14-year-olds making games in the app store top 10</a> aren&#8217;t helping either. Start with a 5-figure sum, and keep going upwards if you want your app to really succeed.</li>
</ol>
<p>I also mention <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5waG9uZWdhcC5jb20=">PhoneGap</a> a lot in the flow-chart, and that&#8217;d because I genuinely believe it&#8217;s a great solution to the &#8220;discoverability&#8221; problem. This is where you have a mobile web site that isn&#8217;t getting enough exposure as people think of &#8220;apps&#8221; as items in the &#8220;app store&#8221;. PhoneGap fills this hole nicely, and gives you access to device hardware as a brilliant bonus. The tools are easy to use and <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9idWlsZC5waG9uZWdhcC5jb20v">PhoneGap Build</a> now takes all of the hard bits of building for Blackberry and Windows Phone away.</p>
<p>Still, there are gray areas in the platform selection process, especially when it comes to tight budgets and enterprise apps. If there&#8217;s only one thing you take away from this tool it should be this: <strong><em>Content is King, know your audience and how they will use your app. The rest flows from there.</em></strong></p>
<p>You can find the tool here: <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5wYWNvbnN1bHRpbmcuY29tL3NvLXlvdS13YW50LWFuLWFwcC8=">www.paconsulting.com/so-you-want-an-app</a> &#8211; I&#8217;ll post the full poster version here when it&#8217;s completed.</p>
<p>Please, let me know what you think, and let me know if you use it for a client as well, share your stories and share the tool with your friends.</p>
<p>&nbsp;</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=836" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2011/handling-iphone-app-ideas/' rel='bookmark' title='Handling iPhone App Ideas'>Handling iPhone App Ideas</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2009/why-iphone-web-apps-are-still-worthwhile/' rel='bookmark' title='Why iPhone Web Apps are Still Worthwhile'>Why iPhone Web Apps are Still Worthwhile</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/-FaQ6jU_mf7uJfbnRHZkSuREME4/0/da"><img src="http://feedads.g.doubleclick.net/~a/-FaQ6jU_mf7uJfbnRHZkSuREME4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-FaQ6jU_mf7uJfbnRHZkSuREME4/1/da"><img src="http://feedads.g.doubleclick.net/~a/-FaQ6jU_mf7uJfbnRHZkSuREME4/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/</feedburner:origLink></item>
		<item>
		<title>Adobe’s Acquisition of Nitobi and TypeKit: Great for them, not so much for us</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/iGVpBMrSCH8/</link>
		<comments>http://www.steveworkman.com/html5-2/standards/2011/adobes-acquisition-of-nitobi-and-typekit-great-for-them-not-so-much-for-us/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 11:37:36 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Nitobi]]></category>
		<category><![CDATA[PhoneGap]]></category>
		<category><![CDATA[TypeKit]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=825</guid>
		<description><![CDATA[Adobe has done the unthinkable, it&#8217;s actually bought two companies worth giving a crap about. Nitobi, makers of PhoneGap, and TypeKit, pioneers of the CSS3 web-font game, have been acquired by Adobe. Adobe should be thrilled. It&#8217;s now got two sets of highly skilled developers with great ideas and good products to work with. TypeKit is [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/html5-2/standards/2010/executive-summary-flash-vs-html5/' rel='bookmark' title='Executive Summary: Flash vs HTML5'>Executive Summary: Flash vs HTML5</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
<li><a href='http://www.steveworkman.com/offtopic/ramblings/2010/5-rules-for-a-great-workspace/' rel='bookmark' title='5 Rules for a great workspace'>5 Rules for a great workspace</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Adobe has done the unthinkable, it&#8217;s actually bought two companies worth giving a crap about. <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2dzLm5pdG9iaS5jb20vYW5kcmUvaW5kZXgucGhwLzIwMTEvMTAvMDMvbml0b2JpLWVudGVycy1pbnRvLWFjcXVpc2l0aW9uLWFncmVlbWVudC13aXRoLWFkb2JlLw==">Nitobi</a>, makers of <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5waG9uZWdhcC5jb20=">PhoneGap</a>, and <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hZG9iZS5jb20vYWJvdXRhZG9iZS9wcmVzc3Jvb20vcHJlc3NyZWxlYXNlcy8yMDExMTAvQWRvYmVBY3F1aXJlc1R5cGVraXQuaHRtbA==">TypeKit</a>, pioneers of the CSS3 web-font game, have been acquired by Adobe.</p>
<p><strong>Adobe should be thrilled.</strong></p>
<p><strong></strong>It&#8217;s now got two sets of highly skilled developers with great ideas and good products to work with. TypeKit is an obvious acquisition as it&#8217;ll be part of <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hZG9iZS5jb20vcHJvZHVjdHMvY3JlYXRpdmVjbG91ZC5odG1s">Adobe&#8217;s Creative Cloud</a> offering that gives them the ability to use (and sample) a huge range of fonts across their apps.</p>
<p>Adobe have also promised that PhoneGap will remain open source, being donated to the Apache Software Foundation. This feels strange, as then Adobe just gets the developers at Nitobi themselves (who are obviously very good). This begs the question: why did Adobe bother with it?</p>
<p>Well, Adobe is a tools company &#8211; they make programs that we make other cool things with. Nitobi was also a tools company, making PhoneGap, that lots of people made cool things with. Alongside the PhoneGap framework, there were two smaller projects,<a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9idWlsZC5waG9uZWdhcC5jb20v"> PhoneGap Build</a> and <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL2JyaWFubGVyb3V4L2NvcmRvdmE=">Cordova</a>.</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL0J1aWxkLURpYWdyYW0ucG5n"><img class="aligncenter size-full wp-image-827" title="PhoneGap Build" src="http://www.steveworkman.com/wp-content/uploads/2011/10/Build-Diagram.png" alt="PhoneGap Build" width="1024" height="431" /></a></p>
<p>PhoneGap Build takes the pain out of making PhoneGap apps for multiple platforms. If you&#8217;ve ever tried to do a build for iOS, Android and Blackberry, you know it&#8217;s a world of pain and about 10GB of tools and frameworks. PhoneGap Build takes this all away from you, and is a service that Adobe can integrate into their Cloud offering.</p>
<p>Cordova is the stand-alone desktop equivalent of PhoneGap Build. It&#8217;s creator, Brian LeRoux, recently <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS9icmlhbmxlcm91eC9zdGF0dXNlcy8xMTExODkxNjUyMTkxMTkxMDQ=">said</a>:</p>
<blockquote><p>All the cli tooling prototyped in Cordova now first class in phonegap/[ios|android]. Time to update Cordova.</p></blockquote>
<p>I take this to mean that Cordova is back in focus, and Adobe will be actively looking to integrate it into DreamWeaver, in the same way it integrated jQuery Mobile.</p>
<p><strong>We should be wary</strong></p>
<p>Adobe&#8217;s track record for mergers is not great. The Macromedia merger led to a focus on Flash and Photoshop, whereas other products like DreamWeaver and Fireworks were not given the time that they deserved. Lots of people <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5pbmZvd29ybGQuY29tL3QvYXBwbGljYXRpb25zL2xheW9mZnMtcGVuZGluZy1hZnRlci1hZG9iZS1tYWNyb21lZGlhLW1lcmdlci01MzA=">lost their jobs</a> in that merger too and I&#8217;d hate to see that happen to the guys at Nitobi or TypeKit.</p>
<p>We have to watch out for<strong> rising prices</strong> and being forced to <strong>buy products that we don&#8217;t need</strong>. I can see it already: with PhoneGap integrating with DreamWeaver, the easiest way to build a PhoneGap app will be with that product or Build. Yesterday, those in the PhoneGap Build program were sent a pricing structure:</p>
<div id="attachment_826" class="wp-caption aligncenter" style="width: 604px"><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL3ByaWNpbmctYW5ub3VuY2VtZW50XzAucG5n"><img class="size-full wp-image-826" title="PhoneGap Pricing Announcement" src="http://www.steveworkman.com/wp-content/uploads/2011/10/pricing-announcement_0.png" alt="PhoneGap Pricing Announcement" width="594" height="302" /></a><p class="wp-caption-text">PhoneGap Pricing Announcement</p></div>
<p>I can see these prices going up, and up (and they&#8217;re not that cheap to begin with). One build a day with the free package probably isn&#8217;t enough. I hope the same doesn&#8217;t occur with TypeKit, or people will just move to one of the other services that exist (Fonts.com for example).</p>
<p>The other danger is that somewhere down the line, these products that many have come to rely upon will simply cease to exist. Merged so deep into Adobe&#8217;s pipeline, the one thing that made them great, their independence, is stripped from them and the revolutions that they make simply slow down and stop. With the core of PhoneGap, we&#8217;ve been promised that they&#8217;ll <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly90d2l0dGVyLmNvbS8jIS9icmlhbmxlcm91eC9zdGF0dXMvMTIwOTA4OTY3OTUzMTg2ODE2">actually have more time for it</a> and I hope this continues for as long as possible. What I&#8217;d hate to see is the core being neglected in favor of tools for products that I don&#8217;t want to buy.</p>
<p>Fingers crossed that Adobe will really make something good this time, and that their commitment to the web and web standards continues, but I won&#8217;t be holding my breath.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=825" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/html5-2/standards/2010/executive-summary-flash-vs-html5/' rel='bookmark' title='Executive Summary: Flash vs HTML5'>Executive Summary: Flash vs HTML5</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
<li><a href='http://www.steveworkman.com/offtopic/ramblings/2010/5-rules-for-a-great-workspace/' rel='bookmark' title='5 Rules for a great workspace'>5 Rules for a great workspace</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/9UiZtAd2YsoOFj-at_Et9F2_QXc/0/da"><img src="http://feedads.g.doubleclick.net/~a/9UiZtAd2YsoOFj-at_Et9F2_QXc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9UiZtAd2YsoOFj-at_Et9F2_QXc/1/da"><img src="http://feedads.g.doubleclick.net/~a/9UiZtAd2YsoOFj-at_Et9F2_QXc/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/standards/2011/adobes-acquisition-of-nitobi-and-typekit-great-for-them-not-so-much-for-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/standards/2011/adobes-acquisition-of-nitobi-and-typekit-great-for-them-not-so-much-for-us/</feedburner:origLink></item>
		<item>
		<title>Sketchnotes from #LWS3D – A 50-line WebGL app</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/2JL6qTpwNfM/</link>
		<comments>http://www.steveworkman.com/html5-2/standards/2011/sketchnotes-from-lws3d-a-50-line-webgl-app/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 09:00:30 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Sketchnotes]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[LWS]]></category>
		<category><![CDATA[sketchnotes]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=810</guid>
		<description><![CDATA[After a summer break, London Web Standards was back with an evening of WebGL with Ilmari Heikkenen from Google and a short demo from Carlos Ulloa of HelloEnjoy. Sketchnotes are below Carlos Ulloa of Brighton-based HelloEnjoy showed off two demos that he made using Three.js and WebGL. The first was HelloRacer, an interactive look at the [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/2011/future-of-web-design-sketchnotes/' rel='bookmark' title='Future of Web Design Sketchnotes &#8211; Day 1'>Future of Web Design Sketchnotes &#8211; Day 1</a></li>
<li><a href='http://www.steveworkman.com/web-design/2011/future-of-web-design-sketchnotes-day-2/' rel='bookmark' title='Future of Web Design Sketchnotes &#8211; Day 2'>Future of Web Design Sketchnotes &#8211; Day 2</a></li>
<li><a href='http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/' rel='bookmark' title='So, you want an app?'>So, you want an app?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>After a summer break, <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xvbmRvbndlYnN0YW5kYXJkcy5vcmc=">London Web Standards</a> was back with an evening of WebGL with <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2lsbWFyaQ==">Ilmari Heikkenen</a> from Google and a short demo from <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL0M0UkwwNQ==">Carlos Ulloa</a> of <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5oZWxsb2Vuam95LmNvbQ==">HelloEnjoy</a>. Sketchnotes are below</p>

<a href='http://www.steveworkman.com/html5-2/standards/2011/sketchnotes-from-lws3d-a-50-line-webgl-app/attachment/lws3d-carlos-ulloa/' title='LWS3D-Carlos-Ulloa'><img width="150" height="150" src="http://www.steveworkman.com/wp-content/uploads/2011/09/LWS3D-Carlos-Ulloa-150x150.png" class="attachment-thumbnail" alt="LWS3D: Carlos Ulloa" title="LWS3D-Carlos-Ulloa" /></a>
<a href='http://www.steveworkman.com/html5-2/standards/2011/sketchnotes-from-lws3d-a-50-line-webgl-app/attachment/lws3d-ilmari-heikkinen/' title='LWS3D-Ilmari-Heikkinen'><img width="150" height="150" src="http://www.steveworkman.com/wp-content/uploads/2011/09/LWS3D-Ilmari-Heikkinen-150x150.png" class="attachment-thumbnail" alt="LWS3D: Ilmari Heikkinen" title="LWS3D-Ilmari-Heikkinen" /></a>

<p><strong>Carlos Ulloa</strong> of Brighton-based HelloEnjoy showed off two demos that he made using <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy8=">Three.js</a> and WebGL. The first was <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2hlbGxvcmFjZXIuY29tL3dlYmdsLw==">HelloRacer</a>, an interactive look at the 2010 Ferrari F1 car that you can even drive and do handbrake turns in. The second demo got it premiere at LWS, an <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2xpZ2h0cy5lbGxpZWdvdWxkaW5nLmNvbQ==">interactive music video for Ellie Goulding&#8217;s &#8220;Lights&#8221;</a>. Honestly, it was extremely cool, on a <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3JvLm1l">Ro.me &#8220;3 dreams of black&#8221;</a> scale. It&#8217;ll appear at the linked URL in the next week or so. There&#8217;s a <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5sb25kb253ZWJzdGFuZGFyZHMub3JnLzIwMTEvMDkvbHdzM2QtbGl2ZWJsb2cv">great Q&amp;A session on the London Web Standards blog</a> of the event for more detail on how they did it.</p>
<p><strong>Ilmari Heikkenen </strong>showed the gathered crowd how to make a basic WebGL app using <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL21yZG9vYi90aHJlZS5qcy8=">Three.js</a> in about 50 lines. He showed off all of the components that you need: a renderer, scene, camera, mesh and lights (and shadows). He went into more depth about vertex shaders and fragment shaders, the GPU effects that make everything look a lot more real.</p>
<p>Ilmari gave examples of a few uses, including games, 3D bar charts and scatter graphs. He then started animating all of these, including a 10,000 point scattergraph that moved in real-time. Finally, he demonstrated a loader for Collada meshes (supported by Maya) and brought in a monster that with a few lines of code started walking around the screen.</p>
<p>Overall, it was a great introduction to the subject, one worth a lot more of your time.</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZodHIub3JnL0Jhc2ljc09mVGhyZWVKUw==">Ilmari&#8217;s slides can be found on his blog</a>.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=810" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/2011/future-of-web-design-sketchnotes/' rel='bookmark' title='Future of Web Design Sketchnotes &#8211; Day 1'>Future of Web Design Sketchnotes &#8211; Day 1</a></li>
<li><a href='http://www.steveworkman.com/web-design/2011/future-of-web-design-sketchnotes-day-2/' rel='bookmark' title='Future of Web Design Sketchnotes &#8211; Day 2'>Future of Web Design Sketchnotes &#8211; Day 2</a></li>
<li><a href='http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/' rel='bookmark' title='So, you want an app?'>So, you want an app?</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/cWkPP6aTzWlY-WsWcPsXXFNoocQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/cWkPP6aTzWlY-WsWcPsXXFNoocQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cWkPP6aTzWlY-WsWcPsXXFNoocQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/cWkPP6aTzWlY-WsWcPsXXFNoocQ/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/standards/2011/sketchnotes-from-lws3d-a-50-line-webgl-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/standards/2011/sketchnotes-from-lws3d-a-50-line-webgl-app/</feedburner:origLink></item>
		<item>
		<title>Project WOW on the Google App Engine Blog</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/B-D4jH9hv1I/</link>
		<comments>http://www.steveworkman.com/html5-2/2011/project-wow-on-the-google-app-engine-blog/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 11:12:02 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[PA]]></category>
		<category><![CDATA[wow]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=803</guid>
		<description><![CDATA[A really quick note: one of my colleagues Ed Hartwell-Goose has written a post for the Google App Engine blog on Project WOW - a site for weather enthusiasts to send their readings to and be collated by the Met Office. It&#8217;s well worth the read to see what we&#8217;ve been up to and some of the [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2007/facebook-platform-a-thought/' rel='bookmark' title='Facebook Platform &#8211; a thought'>Facebook Platform &#8211; a thought</a></li>
<li><a href='http://www.steveworkman.com/html5-2/2010/html5-in-your-blog/' rel='bookmark' title='HTML5 in your blog'>HTML5 in your blog</a></li>
<li><a href='http://www.steveworkman.com/offtopic/2008/steveworkmancom-launches-2/' rel='bookmark' title='SteveWorkman.com Launches'>SteveWorkman.com Launches</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A really quick note: one of my colleagues <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R3aXR0ZXIuY29tL2VkaGdvb3Nl">Ed Hartwell-Goose</a> has written a post for the Google App Engine blog on <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dvb2dsZWFwcGVuZ2luZS5ibG9nc3BvdC5jb20vMjAxMS8wOS9wcm9qZWN0LXdvdy5odG1s">Project WOW</a> - a site for weather enthusiasts to send their readings to and be collated by the Met Office. It&#8217;s well worth the read to see what we&#8217;ve been up to and some of the hugely high-performance stuff you can write for App Engine.</p>
<p><img class="aligncenter" title="Met Office WOW Website" src="http://3.bp.blogspot.com/-YrOewIpAgIM/ToCQpYkSGaI/AAAAAAAAAK4/eM2_ahb28mM/s1600/image00.png" alt="Met Office WOW Website" /></p>
<p>You see the site in action over at <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3dvdy5tZXRvZmZpY2UuZ292LnVr">wow.metoffice.gov.uk</a></p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=803" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2007/facebook-platform-a-thought/' rel='bookmark' title='Facebook Platform &#8211; a thought'>Facebook Platform &#8211; a thought</a></li>
<li><a href='http://www.steveworkman.com/html5-2/2010/html5-in-your-blog/' rel='bookmark' title='HTML5 in your blog'>HTML5 in your blog</a></li>
<li><a href='http://www.steveworkman.com/offtopic/2008/steveworkmancom-launches-2/' rel='bookmark' title='SteveWorkman.com Launches'>SteveWorkman.com Launches</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/p_KklgpX5JGg5gv_9rCnTAmF_Rs/0/da"><img src="http://feedads.g.doubleclick.net/~a/p_KklgpX5JGg5gv_9rCnTAmF_Rs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/p_KklgpX5JGg5gv_9rCnTAmF_Rs/1/da"><img src="http://feedads.g.doubleclick.net/~a/p_KklgpX5JGg5gv_9rCnTAmF_Rs/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/2011/project-wow-on-the-google-app-engine-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/2011/project-wow-on-the-google-app-engine-blog/</feedburner:origLink></item>
		<item>
		<title>Handling iPhone App Ideas</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/BFWKW5ggGKA/</link>
		<comments>http://www.steveworkman.com/web-design/iphone-web-design/2011/handling-iphone-app-ideas/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 08:30:59 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[app ideas]]></category>
		<category><![CDATA[idea process]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=785</guid>
		<description><![CDATA[There&#8217;s one question that I get asked a lot: I&#8217;ve got this great idea for an app&#8230;&#8230; what do you think? I run the mobile development team at my employer, a role that I really enjoy and feel privileged to be doing. I get to work with cutting edge technology, forward-thinking clients and brilliant developers [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/' rel='bookmark' title='So, you want an app?'>So, you want an app?</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2009/why-iphone-web-apps-are-still-worthwhile/' rel='bookmark' title='Why iPhone Web Apps are Still Worthwhile'>Why iPhone Web Apps are Still Worthwhile</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s one question that I get asked a lot:</p>
<blockquote><p>I&#8217;ve got this great idea for an app&#8230;&#8230; what do you think?</p></blockquote>
<p>I run the mobile development team at my employer, a role that I really enjoy and feel privileged to be doing. I get to work with cutting edge technology, forward-thinking clients and brilliant developers and user experience experts. There&#8217;s always a flip side, and for this role it is filtering out the bad ideas from the good ones.</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzA4L1NjcmVlbi1zaG90LTIwMTEtMDgtMjctYXQtMTMuMjQuNDUucG5n"><img class="aligncenter size-full wp-image-794" title="I've got an idea for an app" src="http://www.steveworkman.com/wp-content/uploads/2011/08/Screen-shot-2011-08-27-at-13.24.45.png" alt="I've got an idea for an app" width="573" height="331" /></a></p>
<p><strong>The process</strong><br />
I have a simple process for capturing and evaluating ideas: listen, write it down and do a quick estimate of effort and benefits. If the benefits do not heavily outweigh the effort, say thank you and move on.</p>
<p>That&#8217;s it in a nutshell, but it&#8217;s a bit more complicated than that. Lets step through the process.</p>
<p><strong>Ideas</strong><br />
An idea will come from one of two sources:</p>
<ol>
<li>The media, or</li>
<li>A personal need</li>
</ol>
<p><strong>Ideas based in the media</strong><br />
The request goes a bit like this:</p>
<blockquote><p>Hi Steve, have you seen this article about this cool iPhone/android app? Well, I think we could do something similar (for the other platform)! It&#8217;d be great for [publicity/marketing/a demo/this client I have/making lots of money]. What do you think?</p></blockquote>
<p>If I get a request like this alarm bells start ringing in my head. Clearly, someone else has already done this, and therefore has 3-6 months development time ahead if we were to start developing a rival app. Requests based on the media tend to be for porting android apps to iOS, and unless it&#8217;s an android-only developer, there&#8217;s likely to be a good reason why there&#8217;s no iOS version. Take the <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5iYmMuY28udWsvbmV3cy9idXNpbmVzcy0xNDU3NDgxNg==">BBC 3G strength meter app</a>. It&#8217;s only on android and I was asked if we could do an iPhone version. The answer was simply &#8220;no&#8221;. The long answer was, &#8220;do you really think the BBC wouldn&#8217;t have tried to make an iOS version? Of course they would have. It&#8217;s not possible. iOS doesn&#8217;t allow you that level of access to the phone&#8217;s hardware.&#8221;</p>
<p>The only time that an idea from the media would meet the benefits/effort threshold is if there was a direct client opportunity and the idea came from demand, rather than porting an app. Augmented Reality was a big buzz topic a few years ago, but finding a useful application for it for a client was a challenge, hence I didn&#8217;t make an AR app.</p>
<p>So, unless there&#8217;s a direct need for an app, it&#8217;ll go into my big black book of ideas for a rainy day.</p>
<p><img class="aligncenter" title="Big black book of ideas" src="http://kennysilva.net/wp-content/uploads/2011/02/moleskine.jpg" alt="My big black book of ideas" width="500" height="375" /></p>
<p><strong>Ideas from personal need</strong><br />
The best ideas for apps come from genuine need. You can quote me on that. When someone comes up to me and says,</p>
<blockquote><p>I&#8217;ve got this problem, I need to &#8230;&#8230; I thought it could work as an app?</p></blockquote>
<p>I listen and I&#8217;m always much more hopeful. If someone has a need, then you can bet that other people have that need too. It may be something like large manuals or reference information for a specific sport e.g. SCUBA diving, or an app that collects a lot of information together and displays it usefully. These are the kinds of apps that I like people to talk to me about, and that straight away get to the top of the to-do list.</p>
<p><strong>Which app to do first?</strong><br />
This is a tricky question, but it should be one that you can answer. Follow this formula:</p>
<blockquote><p><em>Potential audience * USP / effort</em></p></blockquote>
<ol>
<li>Your <em>potential audience</em>, on a scale of 1-10 where 1 is &#8220;just you&#8221; and 10 is &#8220;every phone owner&#8221;</li>
<li><em>USP</em> (Unique Selling Point) on a scale of 1-10 where 1 is &#8220;It&#8217;s a twitter app&#8221; and 10 is &#8220;best idea ever, never been done before, it&#8217;ll revolutionise the way we live&#8221;</li>
<li><em>Effort</em> is a 1-10 scale of how long it&#8217;ll take you to make the USP work (1 is short time, 10 is long time). It is not how long until you can get a first release out, it is how much effort will it take to create the hook for users.</li>
</ol>
<p>So, for a basic twitter app, you will end up with a formula of 8*1/4 = 2. For an app for flight controllers, you&#8217;d get 3*7/7 = 3, so you&#8217;d be better-off spending your time on the flight controllers app. Either way, they&#8217;re both not very high scores, so you may want to keep looking for better ideas.</p>
<p>Yes, I know it&#8217;s a contrived example, and that it won&#8217;t apply in every case, but give it a go if you are given a few ideas and don&#8217;t know which one to do.</p>
<p><strong>What next?</strong><br />
Once you&#8217;ve got your good idea, don&#8217;t ignore any other ideas that come your way. Keep writing them down, keep doing the analysis, and you&#8217;ll always have an idea in your pocket to fall back upon. You may have so many good ideas that you&#8217;ll have to hire some more developers to work on more apps, and that is a very good problem to have.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=785" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/web-design/mobile/2011/so-you-want-an-app/' rel='bookmark' title='So, you want an app?'>So, you want an app?</a></li>
<li><a href='http://www.steveworkman.com/html5-2/standards/2009/why-iphone-web-apps-are-still-worthwhile/' rel='bookmark' title='Why iPhone Web Apps are Still Worthwhile'>Why iPhone Web Apps are Still Worthwhile</a></li>
<li><a href='http://www.steveworkman.com/web-design/iphone-web-design/2008/easy-iphone-applications/' rel='bookmark' title='Easy iPhone Applications'>Easy iPhone Applications</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/x66toQyT8t8rGkdBbt9HREbKayY/0/da"><img src="http://feedads.g.doubleclick.net/~a/x66toQyT8t8rGkdBbt9HREbKayY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/x66toQyT8t8rGkdBbt9HREbKayY/1/da"><img src="http://feedads.g.doubleclick.net/~a/x66toQyT8t8rGkdBbt9HREbKayY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/web-design/iphone-web-design/2011/handling-iphone-app-ideas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/web-design/iphone-web-design/2011/handling-iphone-app-ideas/</feedburner:origLink></item>
		<item>
		<title>Tips and Problems when Enhancing SharePoint with JavaScript</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/kJch0fAd20w/</link>
		<comments>http://www.steveworkman.com/html5-2/standards/2011/tips-and-problems-when-enhancing-sharepoint-with-javascript/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 08:43:59 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=779</guid>
		<description><![CDATA[If you&#8217;ve developed for Microsoft&#8217;s SharePoint before (I&#8217;m talking about 2007 here, but this applies to WSS2 and 2010 as well) , then you&#8217;ll know that you can reach the limits of it&#8217;s functionality very quickly. This is a big problem if you&#8217;re making a zero-code solution, i.e. you have no access to Visual Studio and [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/html5-2/javascript/2011/improving-javascript-xml-node-finding-performance-by-2000/' rel='bookmark' title='Improving Javascript XML Node Finding Performance by 2000%'>Improving Javascript XML Node Finding Performance by 2000%</a></li>
<li><a href='http://www.steveworkman.com/html5-2/html5-css3/2011/problems-loading-local-fonts-with-font-family/' rel='bookmark' title='Problems loading local fonts with font-family'>Problems loading local fonts with font-family</a></li>
<li><a href='http://www.steveworkman.com/web-design/browsers/2011/chrome-or-opera/' rel='bookmark' title='Chrome or Opera'>Chrome or Opera</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve developed for Microsoft&#8217;s SharePoint before (I&#8217;m talking about 2007 here, but this applies to WSS2 and 2010 as well) , then you&#8217;ll know that you can reach the limits of it&#8217;s functionality very quickly. This is a big problem if you&#8217;re making a zero-code solution, i.e. you have no access to Visual Studio and can&#8217;t create web parts. This is more common than you&#8217;d think, especially in large organisations that use SharePoint extensively. For this, the only choice is to use SharePoint Designer 2007 (SPD), but it&#8217;s not pleasant because, frankly, SPD sucks. I&#8217;ve not found a program that crashes as much as SPD, or that performs so poorly when presented with the most basic tasks. If you make a page that is too complex, has too many web parts, large data sources or lots of conditionals, connections and filters, it can take anywhere <em>up to 20 minutes to perform a single action</em>.</p>
<p><img class="aligncenter" title="SharePoint crash" src="http://2.bp.blogspot.com/_2mIeP-q6ShI/TKn6AMvC_gI/AAAAAAAAACg/FnwxjpsJHmU/s1600/sp2010crash.png" alt="SharePoint crash" width="366" height="225" /></p>
<p>Very quickly, you have to start looking at alternatives to complex data views. These days, the go-to technology is JavaScript, which is very powerful and can allow developers to access almost every SharePoint function through web services. However, this functionality <em>comes at the cost of accessibility</em>. So, the first piece of advice: <strong>if you can avoid using JavaScript, do so</strong> because otherwise the site won&#8217;t be accessible. See these links for why <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hY2Nlc3MtYm9hcmQuZ292L3B1YmxpY2F0aW9ucy9hZGFmYWN0c2hlZXQvYTEzLmh0bWw=">accessibility</a> <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hY2Nlc3MtYm9hcmQuZ292L2FkYWFnL2h0bWwvYWRhYWcuaHRt">is</a> <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zZWN0aW9uNTA4Lmdvdi8=">a</a> <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zaG9vc21pdGhzLmNvLnVrL25ld3MvMzQ0MS5hc3A=">good</a><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53ZWJjcmVkaWJsZS5jby51ay91c2VyLWZyaWVuZGx5LXJlc291cmNlcy93ZWItYWNjZXNzaWJpbGl0eS91ay13ZWJzaXRlLWxlZ2FsLXJlcXVpcmVtZW50cy5zaHRtbA=="> thing</a>.</p>
<p>Unfortunately, SharePoint is so limited that often a JavaScript is the only way to add functionality in or to correct formatting. In this case, use of <strong>simple SPD functions and &lt;noscript&gt; tags</strong> can keep your content accessible, allowing you to progressively enhance the user&#8217;s experience on top.</p>
<p><img class="aligncenter" title="IE6 JavaScript error" src="http://images.sixrevisions.com/2009/05/14-03_error-debug.png" alt="" width="226" height="160" /></p>
<p>The final hurdle to cross before you can create great JavaScript-based interfaces in SharePoint is IE.</p>
<p>Internet Explorer, especially IE6, has <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5hdGFsYXNvZnQuY29tL2NzL2Jsb2dzL2luc2VydHF1YWxpdHloZXJlL2FyY2hpdmUvMjAwOC8wOC8wNy93aHktaWUtZGV2ZWxvcGVyLXRvb2wtYmFyLWlzLXNlY29uZC10by1maXJlYnVnLmFzcHg=">appalling developer tools</a> for JavaScript debugging. There&#8217;s no console, inspector, breakpoint facility, no nothing. It&#8217;s almost impossible to debug your problems because they all manifest themselves as runtime errors on some arbitrary line on the page.</p>
<p><strong>The best way that you can debug JavaScript in IE, is with Google Chrome.</strong> It doesn&#8217;t sound right, but I promise it&#8217;s the easiest way to make your code work. Both Chrome&#8217;s Web Inspector and Firefox&#8217;s Firebug work very well with SharePoint, though my personal preference is for Chrome as it works better with Windows&#8217; NTLM authentication system (it doesn&#8217;t ask you for your login details, just takes them from Windows). They allow you to check and validate your code so that it works well and runs as expected. You should be able to achieve this in half the time that you would if you were just developing for IE, using alerts to work out what&#8217;s going wrong.</p>
<p>There&#8217;s another benefit for working this way around: <strong>your code will work on standards-compliant browsers, and any that come along in the future.</strong> This is always a good thing as you don&#8217;t know when the organisation will roll out IE8/9 to its users, <em>nor can you always guarantee that a user will be using a IE</em>. It&#8217;s important that sites are ready for these changes and best-practice development is maintained.</p>
<p>In summary, if you have to use JavaScript, ensure the page content will work without it. If you are doing any major development work, do it in Chrome and reap the benefits of its debugger, then make it work in IE.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=779" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/html5-2/javascript/2011/improving-javascript-xml-node-finding-performance-by-2000/' rel='bookmark' title='Improving Javascript XML Node Finding Performance by 2000%'>Improving Javascript XML Node Finding Performance by 2000%</a></li>
<li><a href='http://www.steveworkman.com/html5-2/html5-css3/2011/problems-loading-local-fonts-with-font-family/' rel='bookmark' title='Problems loading local fonts with font-family'>Problems loading local fonts with font-family</a></li>
<li><a href='http://www.steveworkman.com/web-design/browsers/2011/chrome-or-opera/' rel='bookmark' title='Chrome or Opera'>Chrome or Opera</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/-Vqkg86KxU42taEEkOG5lRfgKnI/0/da"><img src="http://feedads.g.doubleclick.net/~a/-Vqkg86KxU42taEEkOG5lRfgKnI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-Vqkg86KxU42taEEkOG5lRfgKnI/1/da"><img src="http://feedads.g.doubleclick.net/~a/-Vqkg86KxU42taEEkOG5lRfgKnI/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/html5-2/standards/2011/tips-and-problems-when-enhancing-sharepoint-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/html5-2/standards/2011/tips-and-problems-when-enhancing-sharepoint-with-javascript/</feedburner:origLink></item>
		<item>
		<title>End of an era</title>
		<link>http://feedproxy.google.com/~r/SteveWorkman/~3/8sGTf137N3o/</link>
		<comments>http://www.steveworkman.com/projects/use/2011/end-of-an-era/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 08:12:55 +0000</pubDate>
		<dc:creator>Steve Workman</dc:creator>
				<category><![CDATA[USE]]></category>
		<category><![CDATA[sheffield hockey]]></category>

		<guid isPermaLink="false">http://www.steveworkman.com/?p=774</guid>
		<description><![CDATA[It&#8217;s the end of an era for me. On Monday night, I got this e-mail from my old university hockey club It&#8217;s a sad time for me as www.sheffieldhockey.com was my first big web project. Over the four years I was at uni, I re-wrote it three times. As I learnt more and more about programming, [...]


<strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2007/usev4-is-done/' rel='bookmark' title='USEv4 is Done!'>USEv4 is Done!</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2007/the-facebook-platform/' rel='bookmark' title='The Facebook Platform'>The Facebook Platform</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2007/getting-a-facebook-login-working-on-your-application/' rel='bookmark' title='Getting a Facebook Login working on your application'>Getting a Facebook Login working on your application</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s the end of an era for me. On Monday night, I got this e-mail from my old university hockey club</p>
<p><a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zdGV2ZXdvcmttYW4uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzA4L2VtYWlsLnBuZw=="><img class="aligncenter size-full wp-image-775" title="Sheffield Hockey e-mail" src="http://www.steveworkman.com/wp-content/uploads/2011/08/email.png" alt="" width="425" height="281" /></a></p>
<p>It&#8217;s a sad time for me as <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zaGVmZmllbGRob2NrZXkuY29t">www.sheffieldhockey.com</a> was my first big web project. Over the four years I was at uni, I re-wrote it three times. As I learnt more and more about programming, CSS, MVC and HTML, I discovered whole new things I could do. It was one of the first sites I&#8217;d seen that used Facebook to log people in, well before Facebook had a proper mechanism for allowing you to do that, and people loved it. It was my playground and now it is no more.</p>
<p>However, all is not lost. I&#8217;ve set up <a href="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NoZWZmaWVsZGhvY2tleS5zdGV2ZXdvcmttYW4uY29t">http://sheffieldhockey.steveworkman.com</a> to serve as a lasting memory of an awesome site. Joe, the new club captain, may still want to carry on with the site, get one of the freshers to, well, freshen it up. I&#8217;m hopeful that my gift to the club may continue to be used in some capacity, but, for now, it&#8217;s gone.</p>
 <img src="http://www.steveworkman.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=774" width="1" height="1" style="display: none;" />

<p><strong>If you liked this, you may also like:</strong><ol><li><a href='http://www.steveworkman.com/projects/use/2007/usev4-is-done/' rel='bookmark' title='USEv4 is Done!'>USEv4 is Done!</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2007/the-facebook-platform/' rel='bookmark' title='The Facebook Platform'>The Facebook Platform</a></li>
<li><a href='http://www.steveworkman.com/projects/use/2007/getting-a-facebook-login-working-on-your-application/' rel='bookmark' title='Getting a Facebook Login working on your application'>Getting a Facebook Login working on your application</a></li>
</ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/u6_qQQ0Kr1BRJEB86Omm92fqTWI/0/da"><img src="http://feedads.g.doubleclick.net/~a/u6_qQQ0Kr1BRJEB86Omm92fqTWI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/u6_qQQ0Kr1BRJEB86Omm92fqTWI/1/da"><img src="http://feedads.g.doubleclick.net/~a/u6_qQQ0Kr1BRJEB86Omm92fqTWI/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.steveworkman.com/projects/use/2011/end-of-an-era/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.steveworkman.com/projects/use/2011/end-of-an-era/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.081 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-01-31 18:29:35 -->

