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

<channel>
	<title>AlastairC &#187; Mobile</title>
	<atom:link href="http://alastairc.ac/category/mobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://alastairc.ac</link>
	<description>Kything web interactions</description>
	<lastBuildDate>Fri, 23 Jul 2010 18:06:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Detecting touch-based browsing</title>
		<link>http://alastairc.ac/2010/03/detecting-touch-based-browsing/</link>
		<comments>http://alastairc.ac/2010/03/detecting-touch-based-browsing/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 17:39:17 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=614</guid>
		<description><![CDATA[<img class="alignleft size-thumbnail wp-image-616" title="Touch me, copyright jjjohn." src="http://alastairc.ac/wp-content/uploads/2010/03/touch-me-150x100.jpg" alt="" width="150" height="100" />I came across a situation recently where a JavaScript widget didn't 'work' on the iPhone. It did technically work, but without knowing about two-fingered scrolling (and when you need to use it), it didn't appear to work. So how do you differentiate the iPhone (and other touch based devices) from a regular browser?]]></description>
			<content:encoded><![CDATA[<div class="update">Please note, the method I outlined used <code>ontouchmove</code>, which also picks up Google Chrome now. I&#8217;ve changed it to use <code>ongesturestart</code>, which seems to exclude Chrome (for now).</div>
<p><a href="http://www.flickr.com/photos/jjjohn/2947070519/sizes/o/"><img class="alignleft size-thumbnail wp-image-616" title="Touch me, copyright jjjohn." src="http://alastairc.ac/wp-content/uploads/2010/03/touch-me-150x100.jpg" alt="A finger pointing down towards you, blurry figure and trees in the background." width="150" height="100" /></a>I came across a situation recently where a JavaScript widget didn&#8217;t &#8216;work&#8217; on the iPhone. It did technically work, but without knowing about two-fingered scrolling (and when you need to use it), it didn&#8217;t appear to work. So how do you differentiate the iPhone (and other touch based devices) from a regular browser?<br />
Well, we all know <a href="http://www.quirksmode.org/js/support.html">object detection</a> beats browser detection, but what object would you detect?</p>
<p>The issue in this case was with the <a href="http://www.prismstudio.co.uk/plugins/stylish-select/0.4/">Stylish Select</a> jQuery pluggin. It replaces a standard drop-down with a nicer looking one. It is reasonably accessible as well, supporting keyboard use.</p>
<p>However, it creates a <code>div</code> with <code>overflow </code>of <code>auto </code>and a fixed <code>height</code>, which in desktop browsers creates a scroll bar. In the iPhone, it looks as though you can only select the ones that are initially visible, because there is no scroll bar.</p>
<p>In this case there is a nice fall-back: the select box that the JavaScript is replacing. The iPhone (and I assume other mobile browsers) show this in a system-native way.</p>
<p>So the question becomes how do you detect that a touch-based device is in use?</p>
<p>The solution came from this article on <a href="http://perfectionkills.com/detecting-event-support-without-browser-sniffing/">Detecting event support without browser sniffing</a>, however, it does more than I was looking for, and wasn&#8217;t aimed at touch based detection.</p>
<p>I put together a little script that so far, seems to do what I&#8217;d like:</p>
<pre><code>function isTouchDevice() {
   var el = document.createElement('div');
   el.setAttribute('ongesturestart', 'return;');
   if(typeof el.ongesturestart == "function"){
      return true;
   }else {
      return false
   }
}</code></pre>
<p>Currently this script gives good results for:</p>
<ul>
<li>IE8 / Win (no event detected)</li>
<li>FF 3.6 / Win (no)</li>
<li>Chrome / Win (no)</li>
<li>iPhone 4.0 (yes)</li>
</ul>
<p>I originally picked <code>ontouchmove</code> as a fairly advanced touch event, but Google&#8217;s Chrome started firing for that event. I&#8217;ve moved to <code>ongesturestart</code> which works for now, but may also be used in Chrome later.</p>
<p>If you have another device or browser, please try the <a href="/testing/touch_events.html">test page</a> and let me know the results.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2010/03/detecting-touch-based-browsing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Stackoverflow dev day London &#8211; Roundup</title>
		<link>http://alastairc.ac/2009/11/stackoverflow-london-roundup/</link>
		<comments>http://alastairc.ac/2009/11/stackoverflow-london-roundup/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 01:31:52 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Web APIs]]></category>
		<category><![CDATA[conference notes]]></category>
		<category><![CDATA[devdays]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[stackoverflow]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=565</guid>
		<description><![CDATA[<p><img class="alignleft size-thumbnail wp-image-572" title="Dev Days logo." src="http://alastairc.ac/wp-content/uploads/2009/10/logo-150x93.png" alt="Dev Days logo." width="150" height="93" />I&#8217;ve just gotten back from a great day at the <a href="http://stackoverflow.carsonified.com/events/london/">Stackoverflow Dev Day</a>, I didn&#8217;t take my usual copious notes, but I thought a flavour of proceedings would be good to get down. For those who don&#8217;t know me, I have to add the caveat that I&#8217;m not a&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-572" title="Dev Days logo." src="http://alastairc.ac/wp-content/uploads/2009/10/logo-150x93.png" alt="Dev Days logo." width="150" height="93" />I&#8217;ve just gotten back from a great day at the <a href="http://stackoverflow.carsonified.com/events/london/">Stackoverflow Dev Day</a>, I didn&#8217;t take my usual copious notes, but I thought a flavour of proceedings would be good to get down. For those who don&#8217;t know me, I have to add the caveat that I&#8217;m not a programmer (kind of like &#8216;I&#8217;m not a laywer&#8217;), so I&#8217;m somewhat baised by my background in usability and front-end code.</p>
<h2><a href="http://www.joelonsoftware.com/">Joel Spolsky</a> &#8211; Keynote</h2>
<p><a href="/wp-content/uploads/2009/10/DSCF0741.jpg"><img class="alignright size-thumbnail wp-image-566" title="Joel talking about simplicity vs power" src="http://alastairc.ac/wp-content/uploads/2009/10/DSCF0741-150x112.jpg" alt="Joel talking about simplicity vs power" width="150" height="112" /></a>Joel&#8217;s keynote was on the theme of simplicity vs power, or rather, the third way.</p>
<p>I&#8217;m afraid that this is my interpretation entirely from memory, but essentially:</p>
<ul>
<li>A couple of fundamental assumptions are that users do not like to make decisions, and that just about every design decision should lead to the user being more likely to get laid.</li>
<li>There has been a great upswing in simple interfaces, at least partially lead by 37signals. (Perhaps another contributory factor is the rise of internet applications? Services that can do one thing well.)</li>
<li>However, some types of commercial applications (e.g. bug trackers) will need to cover the 80% of features that aren&#8217;t covered by these &#8216;simple&#8217; applications. Alhtough 80% of people use 20% of the features, they are often different features. Otherwise you are cutting off too many people.</li>
<li>Creating elegant code often takes more time and thought that simply typing out standard code. NB: Elegant was defined as doing things well, and making it look effortless.</li>
<li>Creating elegant interfaces also takes more work, both in creating the UI and often more so in the coding behind it.<br />
A good example is the Amazon one-click. When you move form the (standard?) method of click, then confirmation screen (then rest of checkout process), you suddenly have more work to do. For example, queuing the order (in case they order more things), allowing undo within a certain time, making sure there&#8217;s a default address etc.</li>
<li>Rather than not adding features to keep an interface simple, keep it simple by not forcing the user to make decisions. The interface should certainly start simple, but allow it to be extended, perhaps on a per client/site basis.</li>
</ul>
<p>Joel&#8217;s assertions certainly match my experience with Content Management Systems, which are probably the hardest and least solved programming / interface problem. Whilst 37Signals have been <a href="http://37signals.com/svn/posts/1941-press-release-37signals-valuation-tops-100-billion-after-bold-vc-investment">very successful</a>, I don&#8217;t see them tackling CMSs any time soon&#8230;)</p>
<h2><a href="http://yeoldeclue.com/blog">Michael Sparks</a> &#8211; Python</h2>
<p>Michael essentially took us through the finer points of Python by demonstrating how you can create the Google-style spelling match function, in 21 lines of code (plus a few books worth of content in text files).</p>
<p>It was really good to see an expert use the Python interpreter well (including running into a couple of problems, and solving them). I&#8217;d never really understood how you use it for complex functions before, for example,  indentation matters in Python, and you put it in a command line?? Anyway, that explains the spaces being preferred to tabs thing, and it will certainly help in my dealings with Django. <a href="http://twitter.com/kamaelian/status/5293735306">Hopefully</a> Michael can post something about it soon, in the meantime the <a href="http://norvig.com/spell-correct.html">code is available</a>.</p>
<h2>Joel Spolsky &#8211; Fogbugz</h2>
<p>We had plenty of Joel time today, this was his demo of <a href="http://www.fogcreek.com/FogBUGZ/">Fogbugz</a>, where it&#8217;s a disservice to describe it as bug-tracking software. It&#8217;s obviously modelled on Joel&#8217;s copious experience in developing software, and includes things like Bayesian driven email direction, and predicting launch times better than developers. I&#8217;m not sure it would work for us (juggling 15 web projects at the same time), but it will certainly make me wish for more next time I look at Trac or Bugzilla.</p>
<h2><a href="http://www.amazon.com/gp/product/0470344717">Reto Meir</a> &#8211; <a href="http://code.google.com/android">Android</a></h2>
<p>I have to admit, the technical side of mobile application development (rather than mobile web development) is still pretty intimidating for me, and doesn&#8217;t particularly float my boat. Reto also needs to either increase the font size in Eclispe, or use the &#8216;only when the cursor reaches the edge&#8217; settings in OS X&#8217;s accessibility preferences.</p>
<p>From doing previous presentations I&#8217;ve learned the hard way to:</p>
<ul>
<li>practice it at 800&#215;600 resolution,</li>
<li>check it in 1024, and</li>
<li>even if the projector supports more, keep it to 1024!</li>
</ul>
<p>On the positive side, it was good to see some use of Google moderator. Not only does it make it easy to ask questions (and for people to vote up the best questions), Reto answered the top ones on the spot, and has since <a href="http://moderator.appspot.com/#15/e=f3a76&amp;t=f32bb">answered them all</a>.</p>
<h2><a href="http://remysharp.com/">Remy Sharp</a> &#8211; <a href="http://jquery.com/">jQuery</a></h2>
<p><a href="/wp-content/uploads/2009/10/IMG_0212.jpg"><img class="alignright size-thumbnail wp-image-570" title="Remy Sharp's last slide" src="http://alastairc.ac/wp-content/uploads/2009/10/IMG_0212-150x131.jpg" alt="Remy Sharp's last slide" width="150" height="131" /></a>Remy gave good talk on jQuery (<a href="http://remysharp.com/downloads/write-less-do-more.pdf">presentation</a>), something I&#8217;ve used quite a bit. It was great to include how to creat a plugin, and it explained a few things I&#8217;d seen around but didn&#8217;t understand. I liked Remy&#8217;s approach to the brief of using code,</p>
<p>The things that most interested me were:</p>
<ul>
<li>Having looking up &#8220;<a href="http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html">equality without type coersion</a>&#8221; (the triple equals).</li>
<li><a href="http://jsbin.com/">jsbin.com</a> looks like a very useful service.</li>
<li>There&#8217;s a good <a href="http://irc.freenode.net/#jquery">IRC channel</a> for getting help.</li>
<li>How to add a plugin to jQuery.</li>
</ul>
<h2><a href="http://www.codinghorror.com/blog/">Jeff Atwood</a> &#8211; Stackoverflow</h2>
<p>Jeff&#8217;s talk was less on code, and more the experiences around Stackoverflow, I can&#8217;t remember of it much specifically, but after listening to lots of <a href="http://blog.stackoverflow.com/">podcasts</a> it&#8217;s good to put a face to the voice!</p>
<h2><a href="http://www.linkedin.com/in/pekkak">Pekka Kosonen</a> <span>- Qt</span></h2>
<p><span>Pekka&#8217;s <a href="http://www.slideshare.net/pkosonen/qt-for-stack-overflow-developer-conference">presentation on Qt</a> was intriguing, partly for the upfront honesty (tackling people&#8217;s scepticism about platforms from Nokia), and partly because of the possibilities of<a href="http://qt.nokia.com/"> Qt</a>.</span></p>
<p><span>Although Nokia was presenting about Qt, the platform itself is not originally from Nokia, in fact, it is designed to build cross-OS applications, desktop <em>and </em>mobile. Applications such as Skype and Google Earth have been built with it, so it seems that it can produce native looking applications.<br />
</span></p>
<p><span>It looks like you have to go whole-hog into Qt development, it&#8217;s an SDK, IDE and they may even have server-side compiling of code to for platforms you don&#8217;t have. The demo wasn&#8217;t incredibly convincing, but it does seem like a an option to investigate if you need to develop desktop/mobile applications across several platforms. See also <a href="http://getjar.com/">getjar</a>.<br />
</span></p>
<h2><a href="http://stackoverflow.com/users/32136/phil-nash">Phil Nash</a> &#8211; <span>iPhone</span></h2>
<p><span>Phil&#8217;s <a href="http://www.levelofindirection.com/journal/2009/10/29/stackoverflow-devdays-london.html">presentation on iPhone development</a> wasn&#8217;t quite what I expected, it took us through a short history of the language that iPhone development uses (Objective-C), before creating a little app from scratch. Phil&#8217;s dry sense of humour and occasionally cheesy slides helped make the first half more entertaining, especially as I wasn&#8217;t really target audience and haven&#8217;t quite got the different versions of C straight yet.</span></p>
<p><span>The outline of Objective C drew a few gasps: garbage collection? It seemed most of the audience are used to higher level languages, and Objective C seems like a step backwards.<br />
</span></p>
<p><span>However, the impression was improved a great deal once Phil opened up Xcode and put together a quick application. Phil was the only mobile developer who managed this. As well as the support of the IDE, emulation is obviously easier for the iPhone than Android or Qt, because you&#8217;re targeting a much more narrow range of devices.<br />
</span></p>
<h2><a href="/wp-content/uploads/2009/10/DSCF0745.jpg"><img class="size-thumbnail wp-image-568 alignright" title="John Skeet on the source of bugs" src="http://alastairc.ac/wp-content/uploads/2009/10/DSCF0745-112x150.jpg" alt="John Skeet on the source of bugs" width="112" height="150" /></a>Jon Skeet &#8211; <a href="http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-humanity-epic-fail.aspx"><span>Humanity: Epic Fail</span></a></h2>
<p><span>The &#8216;phenomenal&#8217; Jon Skeet presented a very funny look at why programming is generally hard, based on a rant he had recently about time zones. There isn&#8217;t much for me to say on this, but it&#8217;s worth checking out the presentation and audio on the <a href="http://blog.stackoverflow.com/">Stackoverflow podcast</a> soon.<br />
</span></p>
<h2><a href="https://www.cs.tcd.ie/~pbiggar/#so-2009">Paul Biggar</a> &#8211; <span>How not to design a scripting language</span></h2>
<p><span>I hadn&#8217;t really expected much of this talk, essentially what&#8217;s wrong with modern compilers, however, Paul&#8217;s enthusiasm really carried it.<br />
</span></p>
<h2><a href="/wp-content/uploads/2009/10/DSCF0747.jpg"><img class="alignright size-thumbnail wp-image-569" title="Christian Heilmann presents" src="http://alastairc.ac/wp-content/uploads/2009/10/DSCF0747-150x112.jpg" alt="Christian Heilmann presents" width="150" height="112" /></a><a href="http://icant.co.uk/">Christian Heilmann</a> &#8211; <span>Yahoo! Developer Tools</span></h2>
<p>For me the best was saved until last. I haven&#8217;t seen Christian talk on this before, and despite reading about Yahoo! pipes and YQL, I just hadn&#8217;t really groked it before.</p>
<p>It doesn&#8217;t really hit home until you see someone put an example together in front of you, but the upshot is that there are about a <strong>100 APIs</strong> (everything from Amazon to Weather) that <strong>you don&#8217;t need to read</strong>.</p>
<p>You select a data source from the right of the <a href="http://developer.yahoo.com/yql/console/">console</a>, adjust the &#8216;selector&#8217;, the YQL statement top left, and preview the results in the middle.</p>
<p>If the result is good, then copy the URL from the top right box, and use that with your backend (or <abbr title="Asynchronous JavaScript and XML">ajax</abbr>/<abbr title="Asynchronous JavaScript and json">ajaj</abbr>), and hey-presto.<br />
Example uses are:</p>
<ul>
<li>Showing all your disparate content on other sites in one place, for which <a href="http://icant.co.uk/">Christian&#8217;s site</a> is a prime example. It&#8217;s basically built with YQL, virtually all the content is from other sites! (Presentations, videos, books, blog articles etc.)</li>
<li><a href="http://www.wait-till-i.com/2009/10/29/yqlautotagger-automatic-tag-generation-with-a-single-line-of-javascript/">YQLAutoTagger</a> – automatic tag generation with a single line of JavaScript.</li>
<li><a href="http://github.com/codepo8/TweetTrans">Translate tweets</a>.</li>
<li>Create a set of <a href="http://isithackday.com/hacks/ajaxexperience/flickrgeophotos.html">Flickr photos from a particular geo-location</a>.</li>
<li>You can even scrape HTML for redisplay, narrowing the area using an xpath statement.</li>
</ul>
<p>It uses a SQL like syntax to allow a great deal of granularity, both in terms of filtering things to get just the information you want, as well as using several input sources (URLs) at the same time.</p>
<p>I am not closing the YQL tab I have in Firefox until I&#8217;ve used it somewhere! I think this is the closest <a href="http://developer.yahoo.net/blogs/theater/archives/2009/04/screencast_collating_distributed_information.html">video on YQL</a> I&#8217;ve seen that covers the same content.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2009/11/stackoverflow-london-roundup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPods get speech, Apple gets accessible</title>
		<link>http://alastairc.ac/2008/09/ipods-get-speech/</link>
		<comments>http://alastairc.ac/2008/09/ipods-get-speech/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 22:37:19 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[screenreader]]></category>
		<category><![CDATA[voiceover]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=350</guid>
		<description><![CDATA[<p>The new iPod nanos (4th generation) now have speech-enabled menus, so you don&#8217;t have to be able to see the screen to operate it. This is obviously a boon for the visualy impaired, but with my old iPod I quite often used it from my pocket, or whilst driving. Could&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>The new iPod nanos (4th generation) now have speech-enabled menus, so you don&#8217;t have to be able to see the screen to operate it. This is obviously a boon for the visualy impaired, but with my old iPod I quite often used it from my pocket, or whilst driving. Could this be another case of the<a href="http://www.designcouncil.org.uk/en/Case-Studies/All-Case-Studies/OXO-Good-Grips/"> OXO good grips</a>?</p>
<p><a href="http://www.lioncourt.com/2008/09/09/how-the-ipod-nano-4g-speaks/">Josh Lioncourt spoke to Apple</a>&#8216;s Mike Shebanek about the new features:</p>
<blockquote title="Josh Lioncourt" cite="http://www.lioncourt.com/2008/09/09/how-the-ipod-nano-4g-speaks/"><p>Understandably, a device as small and compact as the iPod Nano hardly has the processing power to generate text-to-speech (TTS) on the fly… iTunes taps into your Mac or PC’s processing power to generate tiny audio files for the various menus, artists, album, song titles, in your library. When you sync, that information is sent to your iPod Nano 4G.</p></blockquote>
<p><a href="http://alastairc.ac/2006/08/the-potential-of-voiceover/#early-days">I wondered about this</a> a couple of years ago based on the patent for the technique, I guess it took quite a while for the various parts of the puzzle to come together. I can see this getting quite widespread use outside of the accessibility community, as it&#8217;s a general feature that suits the click wheel very well. Not so with the touch screen, for obvious reasons. You could even produce a Nano-shuffle hybrid that has the click wheel but no screen.</p>
<p>ars technica covered speech in the new Nanos as well:</p>
<blockquote title="ars technica article." cite="http://arstechnica.com/journals/apple.ars/2008/09/09/apple-event-a-few-extra-details-you-didnt-get?utm_source=microblogging&amp;utm_medium=pingfm&amp;utm_term=main_ars_account&amp;utm_campaign=microblogging"><p>you have speakable items set up on your computer, the nano will inherit the voice you chose to use. It&#8217;s unclear whether this feature will also be part of iPod touches and iPhones.<br />
<img class="aligncenter centred" src="http://alastairc.ac/wp-content/uploads/2008/09/orangenanos2-200x300.jpg" alt="An orange nano with the Spoken Menues option highlighted" width="200" height="300" /></p></blockquote>
<p>It seems that the aspects of voice inherit from your system setting. I hope that simply adjusting the speed doesn&#8217;t require a whole new batch of the voice files though? Adjusting the speed is quite easy with Voiceover, and I do that every so often. (NB: I am sighted, I just like using Voiceover sometimes!)</p>
<p>Apple have also been active in the Windows accessibility world, working with GW Micro (makers of the Windows Eyes screen reader) to make iTunes 8 accessible for that screen reader. I don&#8217;t <em>know</em> that they worked together, but considering the more widespread JAWs wasn&#8217;t included, it&#8217;s the most likely explanation.</p>
<p>And finally, <a href="http://www.apple.com/accessibility/">Apple have published accessibility information</a> in an easy to find place. Most of it seems good, and it&#8217;s definately good that Apple has taken the step to actually publish this, however, I couldn&#8217;t help feeling that the iPhone page leaves a lot unsaid.</p>
<p>It finished with a link to the &#8220;User Guide tagged for screen readers&#8221;.  Um, no one who needs to use a screen reader is going to have any luck with the iPhone at this stage!</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2008/09/ipods-get-speech/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XHTML disrupted by Mobile access</title>
		<link>http://alastairc.ac/2007/06/xhtml-disrupted-by-mobile-access/</link>
		<comments>http://alastairc.ac/2007/06/xhtml-disrupted-by-mobile-access/#comments</comments>
		<pubDate>Tue, 19 Jun 2007 15:30:02 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Front-end code]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[mime type]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2007/06/xhtml-disrupted-by-mobile-access/</guid>
		<description><![CDATA[<img src='/wp-content/uploads/2007/06/xml-error_firefox.thumbnail.gif' alt='Screen shot of the XML error, lots of code.' class="alignleft" />I'm not sure whether to put this down to an issue with my (mobile) ISP, or whether it should count against using XHTML sent as <code>application/xhtml+xml</code>? I've recently found that even a well authored site using valid XHTML can display as an XML error in browsers that support XML mime types.]]></description>
			<content:encoded><![CDATA[<p><img src='/wp-content/uploads/2007/06/xml-error_firefox.thumbnail.gif' alt='Screen shot of the XML error, lots of code.' class="alignleft" />I&#8217;m not sure whether to put this down to an issue with my (mobile) ISP, or whether it should count against using XHTML sent as <code>application/xhtml+xml</code>? I&#8217;ve recently found that even a well authored site using valid XHTML can display as an XML error in browsers that support XML mime types.</p>
<p>The site was using <a href="http://msdn2.microsoft.com/en-us/library/ms537512.aspx">Internet Explorer&#8217;s conditional comments</a> to overcome some limitations in IE, and a reverse conditional comment for non IE browsers:</p>
<pre><code>&lt;!--[if !IE]&gt; &lt;--&gt;
        &lt;script type=&quot;text/javascript&quot; src=&quot;scripts.js&quot;&gt;&lt;/script&gt;
&lt;!--&gt; &lt;![endif]--&gt;
</code></pre>
<p>Unfortunately, when sent over my mobile connection (Orange) <strong>the page is reformatted</strong>, even though I&#8217;m only using it as a modem. The file is stripped of line breaks, and that comment comes out as:</p>
<pre><code>&lt;!--[if !IE]&gt;&lt;--&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;/scripts/basic.js&quot;&gt;&lt;/script&gt;
&lt;![endif]&gt;
</code></pre>
<p>Missing the close of the comment, the strict display mode triggered by the mime type means that only an XML style error message is displayed.</p>
<p>I guess this has to be added to the list of issues (such as user-added content) that makes an XML mime type difficult to manage?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2007/06/xhtml-disrupted-by-mobile-access/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Mobile GMail</title>
		<link>http://alastairc.ac/2006/12/mobile-gmail/</link>
		<comments>http://alastairc.ac/2006/12/mobile-gmail/#comments</comments>
		<pubDate>Sun, 31 Dec 2006 01:56:08 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2006/12/mobile-gmail/</guid>
		<description><![CDATA[<img src="http://alastairc.ac/wp-content/uploads/2006/12/googlemailapp-menu.thumbnail.jpg" alt="The GMail mobile client." class="alignleft" />I've recently moved to using GMail as my primary interface, and I noticed a new mobile feature. The mobile access for GMail is much better than the one I installed on my hosting, which frankly was unusable on my phone despite an excellent mobile browser. Then I tried the Symbian GMail client.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently moved to using GMail as my primary interface, and I noticed a new mobile feature. (I haven&#8217;t changed email address, it&#8217;s just for interface and access reasons.) The mobile access for GMail is much better than the one I installed on my hosting, which frankly was unusable on my phone despite an <a href="/2006/10/mobile-browsing/">excellent mobile browser</a>.</p>
<h2 id="standard-mobile-gmail">Standard mobile GMail</h2>
<p>I was quite happy with the <a href="http://mail.google.com/mail/help/intl/en/about_mobile.html">standard GMail</a> on my mobile (a <a href="http://www.nokiausa.com/phones/N80">Nokia N80</a>), it was quick and reliable:</p>
<p><img id="image164" src="/wp-content/uploads/2006/12/googlemail-html.jpg" alt="My inbox on GMail through a mobile browser, simple text and links." class="centered" /></p>
<p>It wasn&#8217;t just better than the free webmail client I had used (which, to be fair, was aimed at desktop browsers), it was also better than the phone&#8217;s inbuilt email system. When using two different computers (on two platforms) as well as a phone, I need server-side storage so IMAP has been my method of choice. Unfortunately, the inbuilt email on the N80 doesn&#8217;t handle that very well.</p>
<p>So I was happily using GMail on my mobile, and then I noticed a <q>Get faster GMail</q> link at the top of my inbox. Speed? Hmm, it was already quick. I was suspicious I might end up downgrading my service!</p>
<p>However, it turned out to be speeding up the interaction, not raw speed.</p>
<h2 id="java-based-gmail">Java based GMail client</h2>
<p>If you have a Symbian S60 phone, you will get that link and you can download the 111k GMail client. </p>
<p>The data is similar, heck, even the display isn&#8217;t that different:</p>
<p><img id="image165" src="/wp-content/uploads/2006/12/googlemailapp-inbox.jpg" alt="The same inbox via the Java based client." class="centered" /></p>
<p>However, what makes this about five times better in use, is the menu.</p>
<p>What do you do with email before even reading them? In my case, a few spam still get through, so quite often I have to send a few emails to the trash immediately. If you haven&#8217;t set up filters for some things, you might want to send them off to the Archive immediately as well.</p>
<p>With a web based interface, the best approach you could have would be to include tick-boxes by each email, and then go to the bottom (or top) and perform an action on the selected emails. But the GMail client makes this even easier:</p>
<p><img id="image166" src="/wp-content/uploads/2006/12/googlemailapp-menu.jpg" alt="The GMail client menu, showing Archive, mark as unread, remove star, report spam and delete, each with keys attached." class="centered" /></p>
<p>Each common action is not only available for each item as you select it, it is available via an &#8216;accesskey&#8217;. </p>
<p>Don&#8217;t get me wrong, I still think <a href="http://www.nomensa.com/resources/articles/accessibility-articles/access-keys.html">accesskeys are not useful on the web</a> at large, but for a platform-specific application like this, they move the interaction from sluggish to slick. The interface also makes these keys discoverable, although I do wonder if people might think the number next to each email is a short-cut?</p>
<p>With GMail&#8217;s standard &#8216;conversation&#8217; convention, where replies are included within one page (like threading in traditional email clients), and it&#8217;s well implemented hiding of quoted text, your inbox just feels less cluttered. It is also the first time I&#8217;ve felt a little stirring of <a href="http://en.wikipedia.org/wiki/Convergance">convergance</a>, I&#8217;m using the same interface (or as near as) on different devices in different contexts.</p>
<p>The only <a href="http://blogs.forum.nokia.com/view_entry.html?id=269">press release</a> I could find on this was on the Nokia forum&#8230; Uh oh, this is starting to sound like an advert, this doesn&#8217;t mean I&#8217;ve forgiven <a href="/2006/12/why-does-google-use-captcha/">Google for using CAPTCHA</a>, and for some reason it&#8217;s dropping emails to me from my blog.</p>
<p>Now if only I could sync my phone&#8217;s calendar with my Google calendar&#8230;</p>
<hr />
<p><strong>Technorati Tags:</strong></p>
<ul class="tags">
<li><a href="http://technorati.com/tag/mobile" rel="tag">mobile</a></li>
<li><a href="http://technorati.com/tag/email" rel="tag">email</a></li>
<li><a href="http://technorati.com/tag/symbian" rel="tag">symbian</a></li>
<li><a href="http://technorati.com/tag/gmail" rel="tag">gmail</a></li>
<li><a href="http://technorati.com/tag/nokia" rel="tag">nokia</a></li>
<li><a href="http://technorati.com/tag/google" rel="tag">google</a></li>
<li><a href="http://technorati.com/tag/convergance" rel="tag">convergance</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2006/12/mobile-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Raising the bar of mobile browsing</title>
		<link>http://alastairc.ac/2006/10/mobile-browsing/</link>
		<comments>http://alastairc.ac/2006/10/mobile-browsing/#comments</comments>
		<pubDate>Sat, 21 Oct 2006 01:19:09 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://alastairc.ac/2006/10/mobile-browsing/</guid>
		<description><![CDATA[<img src="http://alastairc.ac/wp-content/uploads/2006/10/webkit_home.thumbnail.jpg" alt="The Webkit browser showing my homepage, practically perfectly." class="alignleft" />Mobile browsing has been, frankly, rubbish so far. But now there are <strong>two</strong> new mobile browsers that confound the generally dire opinion of mobile browsers.]]></description>
			<content:encoded><![CDATA[<p>Mobile browsing has been, frankly, rubbish so far. Molly E. Holzschlag described it well just over a year ago when she said: <q cite="http://www.molly.com/2005/09/24/got-browser-woes-think-again/">anyone who has done wireless development already knows cross-device and wireless agent development is much more insane than anything we deal with on the desktop.</q></p>
<p>In the same way that we (i.e. web developers) can deal with <a href="http://www.boxofchocolates.ca/archives/2005/06/12/javascript-and-accessibility">JavaScript or not</a>, but <strong>not</strong> a Frankenstein monster in between, so it is with CSS in the mobile world. This is my home page rendered by the default Nokia/Orange browser (apologies for the poor pictures):</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/default_home.jpg" title="Myhome page rendered very badly by the default browser on a Nokia."><img id="image125" src="http://alastairc.ac/wp-content/uploads/2006/10/default_home.jpg" alt="My home page rendered very badly by the default browser on a Nokia." class="centered" /></a></p>
<p>Not too good, mostly because it understands the <code>@import</code> but does no better than Netscape 4 in rendering CSS. There is little you can do about it in practice, apart from perhaps create a different version for each of the 40+ different mobile user agents, trying the futile dance of user-agent detection.</p>
<h2>New league of mobile browsing</h2>
<p>There are <strong>two</strong> new mobile browsers that confound the generally dire opinion of mobile browsers. <a href="http://mondaybynoon.com/2006/08/28/catching-up-on-the-mobile-web/">Jon Christopher highlighted</a> the first in August, the <a href="http://www.opera.com/products/mobile/products/">Opera Mobile browser</a>. Relative to the other mobile browsers, this is practically desktop quality. </p>
<p>In terms of rendering, the Opera mobile browser is pretty damn good, in &#8216;Desktop&#8217; mode it is very similar to the desktop Opera browser but with scrolling:</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/opera_desktop_home.jpg" title="Opera Mobile's rendering of my browser."><img id="image126" src="http://alastairc.ac/wp-content/uploads/2006/10/opera_desktop_home.jpg" alt="Opera Mobile's good rendering of my home page." class="centered" /></a></p>
<p>The default mode is actually more useful in practice, it re-formats the page to fit the screen width:</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/opera_small_home.jpg" title="Opera Mobile's rendering in small screen mode of my home page. "><img id="image127" src="http://alastairc.ac/wp-content/uploads/2006/10/opera_small_home.jpg" alt="Opera Mobile's rendering in small screen mode of my home page." class="centered" /></a></p>
<p>With my shiny new Nokia N80, I can use either the Opera mobile browser, the Opera mini, or the new Webkit based <a href="http://press.nokia.com/PR/200506/998214_5.html">Symbian web browser</a> that uses the same base as Safari. (Using any of these will drain the batteries remarkably quickly, but that&#8217;s another story!)</p>
<p>The Webkit browser also renders my home page very well:</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/webkit_home.jpg" title="The Webkit browser showing my homepage, practically perfectly."><img id="image128" src="http://alastairc.ac/wp-content/uploads/2006/10/webkit_home.jpg" alt="The Webkit browser showing my homepage, practically perfectly." class="centered" /></a></p>
<p>This simple fact puts both Opera &#038; Webkit in a league of their own in mobile browsing, as my site was developed (quickly and easily) for desktop browsers, no thought was given to mobile browsers apart from hiding the CSS with an <code>@import</code> method.</p>
<p>Notice also that the Webkit browser uses a pointer, and the way you scroll around and use the interface feels very similar to using a screen magnifier on the desktop.</p>
<p>One of the main things the Webkit based browser does differently is applying a max-width to the items with text. Although it uses the standard desktop sytle layout, any element (like <code>&lt;p&gt;</code>s) is given a max-width of the size of the screen. In general this is very useful, and is a great compromise between Opera&#8217;s desktop and standard modes.</p>
<p>The easiest way to show this is with another of the Webkit browsers features, the page map that you can get to by pressing <kbd>8</kbd>:</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/webkit_map.jpg" title="The webkit browser's map of my home page."><img id="image129" src="http://alastairc.ac/wp-content/uploads/2006/10/webkit_map.jpg" alt="The webkit browser's map of my home page." class="centered" /></a></p>
<p>The red outline shows the screen size, and this view allows you to scroll through a page quickly to the place you want and start reading.</p>
<p>The browser must do some kind of thumbnail caching for each page, as pressing back brings up this type of picture, and you can cycle through them like the gallery&#8217;s carousel:</p>
<p> <a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/webkit_back.jpg" title="Webit's back function, allowing you to cycle through the thumbnails or previous pages."><img id="image130" src="http://alastairc.ac/wp-content/uploads/2006/10/webkit_back.jpg" alt="Webit's back function, allowing you to cycle through the thumbnails or previous pages." class="centered" /></a></p>
<p>There are great features of both Opera and Webkit, after a brief use of each, my first impression is that Opera has better advanced features, and Webkit has the edge in the basic browsing mechanisms. Which one you might use will probably come down to personal preference, or the price tag of each. (Opera is available on many phones for a price, Webkit is only available on a few, but is the default browser when it is.)</p>
<h2>Mobile browsing paradigm shift?</h2>
<p>&#8220;Paradigm shift&#8221; isn&#8217;t a phrase I&#8217;ve used before, but these browsers do break the mold. I saw <a href="http://www.cameronmoll.com/">Cameron Moll</a>&#8216;s presentation at <a href="http://www.vivabit.com/atmedia2006/">@Media</a> this year (a good primer is <a href="http://www.cameronmoll.com/archives/000428.html">Mobile Web Design</a>), and he suggested that good mobile sites or applications should assume that the <strong>person</strong> is mobile, not just the browsing, and that the tasks and content possible should be oriented towards that scenario.</p>
<p>I agreed with his conclusions, they are something that you would expect to hear from a usability bod like myself. However, these browsers afford easy reading, even articles like this! I&#8217;ve been using the Webkit browser for a couple of months, and whilst stuck on a train or on holiday without a laptop, I can follow my usual browsing habits. (I.e. reading articles, checking webmail etc.)</p>
<p>One of Cameron&#8217;s 4 mobile development options is &#8216;do nothing&#8217;, and the quality of that option is now a whole lot better. I even (just about) managed the AJAX style drag and drop of the items on my google home page! That might be an unique advantage of Webkit, as other mobile browsers do not have a pointer.</p>
<p><a class="imagelink" href="http://alastairc.ac/wp-content/uploads/2006/10/webkit_google.jpg" title="Google home page on the webkit browser, not quite loaded."><img id="image131" src="http://alastairc.ac/wp-content/uploads/2006/10/webkit_google.jpg" alt="Google home page on the webkit browser, not quite loaded." class="centered" /></a></p>
<p>These new browsers do not change the scenarios where the mobile web is most useful, but they do <em>add</em> a scenario of use that is more similar to desktop browsing. It is entirely possible that only the first-movers or web-geeks will notice though? Although the Nokia N80 is on the forefront of mobile phones with computing power, you have to wonder how long it will be before this browser is standard?</p>
<p>The Opera browser makes use of handheld media style sheets in the standard fit-to-screen mode, but not when in desktop mode, which makes sense. It&#8217;s just a shame that you can&#8217;t target the Webkit mobile browser (that I know of), items like the boxes on the <a href="http://www.nomensa.com/">Nomensa.com</a> home page are somewhat crushed due to the max-width. (Although the JavaScript &#8216;big hit area&#8217; works fine.) Out of interest the user agent string is:</p>
<pre><code>Mozilla/5.0 (SymbianOS/9.1; U; en-us) AppleWebKit/413
 (KHTML, like Gecko) Safari/413</code></pre>
<hr />
<p><strong>Technorati Tags:</strong></p>
<ul class="tags">
<li><a href="http://technorati.com/tag/mobile" rel="tag">mobile</a></li>
<li><a href="http://technorati.com/tag/browsing" rel="tag">browsing</a></li>
<li><a href="http://technorati.com/tag/symbian" rel="tag">symbian</a></li>
<li><a href="http://technorati.com/tag/opera" rel="tag">opera</a></li>
<li><a href="http://technorati.com/tag/nokia" rel="tag">nokia</a></li>
<li><a href="http://technorati.com/tag/web+development" rel="tag">web development</a></li>
<li><a href="http://technorati.com/tag/css" rel="tag">CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2006/10/mobile-browsing/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
